对属性的集合更改事件,该属性是模型本身

时间:2014-10-28 14:23:49

标签: backbone.js collections nested models

我已经创建了(比如)ModelA的Backbone.Collection,我正在尝试收听对这些模型的特定属性的更改。这很简单,......('更改:attr1')。这会在需要时准确触发事件。然而问题是当该属性是另一个具有自己属性的模型(ModelB)时。如果更改ModelB的属性,则集合将无法捕获该事件(这是正确的,ModelA的属性从未更改,“属性的属性已更改”)。

一个想法是将侦听器从ModelB连接到ModelA,然后连接到集合。这可能有效,但我们现在正在添加大量的监听器来构建这一系列事件。我还怀疑,当我们不需要听众时,解开听众是一件痛苦的事。

那么有更好的方法(或替代方法)实现这一目标吗?任何反馈都表示赞赏。

由于

1 个答案:

答案 0 :(得分:0)

我认为最干净的方法是通过父模型转发事件。看看我的例子:http://jsfiddle.net/w8n9erqo/

但您也可以覆盖集合方法_addReference_removeReference以添加自定义事件绑定逻辑。 http://backbonejs.org/docs/backbone.html#section-118

希望这有帮助