【发布时间】:2012-09-19 10:23:09
【问题描述】:
我正在尝试为视图绑定实现自定义集合事件。
在我看来,我想做这样的事情:
this.collection.on('available', this.available);
并以某种方式在我的集合中触发此方法。
假设我的集合中有一个设置特定模型属性(可用)的方法,那么我如何触发绑定到该方法的所有视图?
这是否可能,并且能够将相关模型传递给视图进行更新。
提前感谢您的帮助,非常感谢:)
【问题讨论】:
我正在尝试为视图绑定实现自定义集合事件。
在我看来,我想做这样的事情:
this.collection.on('available', this.available);
并以某种方式在我的集合中触发此方法。
假设我的集合中有一个设置特定模型属性(可用)的方法,那么我如何触发绑定到该方法的所有视图?
这是否可能,并且能够将相关模型传递给视图进行更新。
提前感谢您的帮助,非常感谢:)
【问题讨论】:
向 Backbone 添加新事件非常简单。您只需在要触发事件的对象上调用trigger 方法。
例如,假设您在集合的一个方法中,并且有一个模型(称为model):
this.trigger('available', model);
绑定到available 事件的代码就像您在问题中描述的那样。
编辑:如今,Backbone 提供了一个 listenTo 方法,您通常应该在从视图绑定到集合事件时使用该方法。当调用 remove 函数时,视图将自动与该事件解除绑定,这会阻止旧视图在被删除后继续接收集合事件。在您看来,可以这样使用:
this.listenTo(this.collection, 'available', this. available);
【讨论】: