【问题标题】:Backbone events on model firing on collection (Double firing)收集时模型触发的主干事件(双重触发)
【发布时间】:2012-03-30 22:36:26
【问题描述】:

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

https://gist.github.com/2255959

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

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

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

【问题讨论】:

    标签: events backbone.js coffeescript backbone-events


    【解决方案1】:

    来自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/

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多