我很困惑如何在 Backbone.js 中实现命名空间。我一直在全球范围内创建我的模型、集合和视图。命名空间是否只是App.
在模型、集合和视图类和对象的前面加上一行window.App = {};
?
它似乎有效,但这种方式被认为是最佳实践吗?如果没有,有什么更好的方法?
我也在App = App || {};
某个地方看到过。拥有的目的是|| {}
什么?
尝试命名空间 // 命名空间 window.App = {};
// Models
App.Product = Backbone.Model.extend();
// Collections
App.ProductCollection = Backbone.Collection.extend({
model: App.Product,
url: '/wizard'
});
// Views
App.ProductListView = Backbone.View.extend({
el: '#photo_list',
initialize: function() {
this.collection.bind('reset', this.render, this);
},
render: function() {
this.collection.each(function(product, index){
$(this.el).append(new App.ProductView({ model: product }).render().el);
}, this);
return this;
}
});
// Snippet
App.productList = new App.ProductCollection();
App.selectedProductList = new App.SelectedProductCollection();
App.productListView = new App.ProductListView({ collection: App.productList });