主干:模型和视图之间的关系

时间:2012-04-15 21:21:04

标签: backbone.js

在我正在查看的骨干应用程序的一个视图(视图A)中(有多个模型),它在初始化程序中有这一行

  this.model.bind('change', this.setText, this);

在另一个视图(视图B)中,它在初始值设定项中有这一行

this.model.bind('change', this.render, this);

然而,在任何一个View中都没有指出它连接到哪个模型。即没有声明'model'是什么。这是否意味着触发'change'的任何模型都会在视图A中触发this.setText,在视图B中触发{同时} this.render

1 个答案:

答案 0 :(得分:4)

来自fine manual

  

构造函数/初始化 new View([options])

     

[...]有几个特殊选项,如果通过,将直接附加到视图:modelcollectionelidclassNametagNameattributes

所以当你用这个实例化一个视图时:

var v = new SomeView({ model: m });

Backbone会在this.model内自动将m设置为v,这将在调用initialize之前完成。查找具有bind个调用的视图的构造函数调用,您应该看到实例化视图时提供的model

  

这是否意味着触发'change'的任何模型都会在视图A中触发this.setText,在视图B中触发{同时} this.render? / p>

不,每个视图(在本例中)都有自己的模型,在实例化视图时提供,事件将仅来自该模型。