我试图利用Backbone的视图事件哈希将更改事件绑定到当前视图的集合:
events: {
'this.collection change': 'render'
}
与我目前的方法相反:
initialize: function() {
this.collection.on('change', this.render, this);
}
但这似乎没有引发事件。他们使用事件哈希将事件绑定到集合的限制是什么?
答案 0 :(得分:3)
events: {
// hash
}
用于将DOM事件连接到视图函数。
this.collection.on('change', this.render, this); // Except change is for models
初始化函数中的是这样做的方法,除了change
事件是针对模型而不是集合,除非您已为正确触发的集合指定了自定义更改事件。
您可能正在寻找的是将add
remove
或reset
事件绑定到您的收藏中。
答案 1 :(得分:0)
如果您使用的是Marionette视图,则可以按照您提到的方式使用collectionEvents
。请参阅http://marionettejs.com/docs/marionette.view.html#viewmodelevents-and-viewcollectionevents。
collectionEvents: {
'change': 'render'
}
如果你使用简单的Backbone,那么orangewarp建议使用change
收听该集合的this.collection.on
事件是可以的。