我正在使用backbone.js,node js,express和mongodb处理应用程序。 已为我的某个实体创建了模型,集合和视图。在这种情况下产品。 使用.fetch函数我可以调用我的web api并成功检索collectionView中的所有元素。
server.js:
app.get( '/api/products', function( request, response ) {
var regex = new RegExp(request.query.searchWord, 'i'); // 'i' makes it case insensitive
return ProductModel.find().or([{ 'title': { $regex: regex }}, { 'description': { $regex: regex }}]).exec( function( err, products) {
if( !err ) {
console.log("Server sending products...");
console.log(adds);
return response.send( products);
} else {
return console.log( err );
}
});
});
在客户端,我有一个名为ProductList的集合,一个CollectionView,一个名为Product的模型和一个ProductView(Backbone)。
在我的客户端,骨干网的集合视图:
var app = app || {};
app.ProductListView = Backbone.View.extend({
el: '#productsDiv',
self: this,
initialize: function( ) {
this.collection = new app.ProductList();
this.collection.fetch({ data: $.param({ searchWord: ""}), reset: true});
这会正确返回使用api url的集合,我可以正确显示它。
此时我创建了第二个名为User的模型,需要它在屏幕上单击页面顶部的链接显示其视图。不应该回发。它应该是单页面应用程序。
我是否需要使用路由器在node.js上调用我的server.js" api / user" url并获取此数据?
使用node.js和backbone切换不同视图的最佳方法是什么?有什么建议吗?
提前谢谢。