2012-03-30 87 views
6

我正在开发的骨干应用程序有一个集合和一个模型,以及每个项目的相关视图。模型集合上的骨干事件(双击)

https://gist.github.com/2255959

当我点击览,出乎意料的是,在收集的事件触发不受任何线路。

我想我需要将一个事件绑定到模型,然后让这个事件发生在集合上。情况并非如此吗?一个集合是否自动继承事件触发了它的子模型?

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

回答

14

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/

+1

你知道是否可以这样反应用?所以我触发了一个集合中的事件,然后将这个事件传播到集合中的每个模型对象? – dombesz 2012-07-03 13:06:01

+1

@dombesz:我认为你必须亲自去做,但是Underscore方法将我与集合混合起来应该使它成为一个快速的班轮。 – 2012-07-03 17:49:14

+0

我刚刚发现,如果我在模型上触发事件,同样的事件也会在集合上触发。 – dombesz 2012-07-04 07:49:42