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

https://gist.github.com/2255959

当我单击PostView时,出乎意料的是,该事件在没有任何布线的情况下触发了集合。

我认为我需要将一个事件绑定(bind)到模型,然后在集合上触发一个事件。不是吗?集合会自动继承触发其子模型的事件吗?

我不确定,但是我认为这与嵌套 View 有关,也许事件绑定(bind)在两个地方,而不仅仅是内部el

最佳答案

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/

08-06 03:41