我已经创建了(比如)ModelA的Backbone.Collection,我正在尝试收听对这些模型的特定属性的更改。这很简单,......('更改:attr1')。这会在需要时准确触发事件。然而问题是当该属性是另一个具有自己属性的模型(ModelB)时。如果更改ModelB的属性,则集合将无法捕获该事件(这是正确的,ModelA的属性从未更改,“属性的属性已更改”)。
一个想法是将侦听器从ModelB连接到ModelA,然后连接到集合。这可能有效,但我们现在正在添加大量的监听器来构建这一系列事件。我还怀疑,当我们不需要听众时,解开听众是一件痛苦的事。
那么有更好的方法(或替代方法)实现这一目标吗?任何反馈都表示赞赏。
由于
答案 0 :(得分:0)
我认为最干净的方法是通过父模型转发事件。看看我的例子:http://jsfiddle.net/w8n9erqo/
但您也可以覆盖集合方法_addReference
和_removeReference
以添加自定义事件绑定逻辑。 http://backbonejs.org/docs/backbone.html#section-118
希望这有帮助