何时指定与骨干中的集合/视图关联的模型

时间:2012-08-14 20:53:30

标签: javascript backbone.js

这不是非常关键,但我想知道什么是最佳实践,因为我已经看到它做到了两个方面。

视图(或集合)声明中的绑定模型:

var FooView = Backbone.View.extend({
    model : fooModel
});

VS。仅在初始化时绑定模型:

App.views.foo = new FooView({ model : fooModel });

1 个答案:

答案 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等等。