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