0

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

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

在另一个视图(视图 B)中,它的初始化程序中有这一行

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

但是,在任何一个视图中都没有指示它连接到哪个模型。即没有声明是什么'model'。这是否意味着任何触发 a 的模型'change'都会this.setText在视图 A 以及(同时) this.render在视图 B 中触发?

4

1 回答 1

4

来自精美手册

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

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

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

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

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

这是否意味着任何触发 a 的模型'change'都会this.setText在视图 A 以及(同时)this.render在视图 B 中触发?

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

于 2012-04-15T21:32:06.123 回答