这不是非常关键,但我想知道什么是最佳实践,因为我已经看到它做到了两个方面。
视图(或集合)声明中的绑定模型:
var FooView = Backbone.View.extend({
model : fooModel
});
VS。仅在初始化时绑定模型:
App.views.foo = new FooView({ model : fooModel });
答案 0 :(得分:2)
在第一种情况下,由于您在类级别进行关联,因此您将所有未来的FooView
实例关联到同一个模型。我从未见过这种方法被使用过。
第二种情况是我使用的唯一一种情况,也是我见过的唯一一种情况。在这种情况下,您将 View 的具体实例与 Model 的具体实例相关联。
您无法将View和Model之间的关联与Collection和Model之间的关联进行比较。
var FooCollection = Backbone.Collection.extend({
model : FooModel
});
注意我正在使用FooModel
(与类相关)而不是fooModel
与具体实例相关。
Collection中是在Class级别完成的,因为这个关联不是一个具体的Model实例,而是一个Model类,所以Collection能够实例化这个具体Model类的实例,并且还可以访问类属性,如Model.urlRoot
等等。