Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Events 收集时触发模型的主干事件(双重触发)_Events_Backbone.js_Coffeescript_Backbone Events - Fatal编程技术网

Events 收集时触发模型的主干事件(双重触发)

Events 收集时触发模型的主干事件(双重触发),events,backbone.js,coffeescript,backbone-events,Events,Backbone.js,Coffeescript,Backbone Events,我正在开发的主干应用程序有一个集合和一个模型,以及每个项目的相关视图 当我单击PostView时,意外地,事件在集合上激发,而不进行任何连接 我想我需要将一个事件绑定到模型,然后让它在集合上触发一个事件。不是这样吗?集合是否自动继承其子模型触发的事件 我不确定,但我认为这与嵌套视图有关,可能事件绑定在两个位置上,而不仅仅是内部的el: 为方便起见,在集合中的模型上触发的任何事件也将直接在集合上触发 因此,是的,集合侦听所有模型上的事件并转发它们 例如,给定如下简单设置: class M ext

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

当我单击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(…)
将触发事件处理程序


演示:

您知道这是否可以反向应用吗?因此,我在集合中触发一个事件,然后将该事件传播到集合中的每个模型对象?@dombesz:我认为您必须手动执行此操作,但集合中混合的下划线方法应该使其成为一个快速的单行程序。我刚刚发现,如果我在模型上触发一个事件,集合上也会触发相同的事件。@dombesz:但不是相反。