模型射击集合上的骨干事件(双射击)

时间:2012-03-30 22:36:26

标签: events backbone.js coffeescript backbone-events

我正在开发的Backbone应用程序有一个集合和一个模型,以及每个项目的相关视图。

https://gist.github.com/2255959

当我单击PostView时,意外地,事件在没有任何连接的情况下触发了集合。

我想我需要将一个事件绑定到模型,然后在集合上激活一个事件。那不是这样吗?集合是否自动继承触发其子模型的事件?

我不确定,但我认为它与嵌套视图有关,也许事件被绑定在两个地方而不仅仅是内部el

1 个答案:

答案 0 :(得分:15)

来自fine manual

  

为方便起见,也会直接在集合中触发集合中模型触发的任何事件。

所以是的,该集合会监听所有模型上的事件并转发它们。

例如,给出一个简单的设置:

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/