我正在开发的 Backbone 应用程序有一个集合和一个模型,以及每个项目的关联视图。
https://gist.github.com/2255959
当我单击 PostView 时,意外地,事件在集合上触发,没有任何连线。
我想我需要将一个事件绑定到模型,然后在集合上触发一个事件。不是这样吗?集合是否会自动继承触发其子模型的事件?
我不确定,但我认为它与嵌套视图有关,也许事件在两个地方都被绑定,而不仅仅是内部el
.
我正在开发的 Backbone 应用程序有一个集合和一个模型,以及每个项目的关联视图。
https://gist.github.com/2255959
当我单击 PostView 时,意外地,事件在集合上触发,没有任何连线。
我想我需要将一个事件绑定到模型,然后在集合上触发一个事件。不是这样吗?集合是否会自动继承触发其子模型的事件?
我不确定,但我认为它与嵌套视图有关,也许事件在两个地方都被绑定,而不仅仅是内部el
.
来自精美手册:
为方便起见,在集合中的模型上触发的任何事件也将直接在集合上触发。
所以是的,该集合在其所有模型上侦听事件并转发它们。
例如,给定一个像这样的简单设置:
class M extends Backbone.Model
class C extends Backbone.Collection
model: M
c = new C
c.on('change', (model, opts) -> console.log('Change on collection'))
这样做c.first().set(...)
会触发事件处理程序。
演示:http: //jsfiddle.net/ambiguous/wwjnK/