我有一个集合作为其模型的Backbone视图。如果通过构造函数传入集合,它可以在其初始化函数中将集合添加到集合中,但是如何知道集合是在构造之后设置的,以便它可以侦听集合中的事件?Backbone.js视图如何知道它的集合何时更改?
我希望能够在其生命周期中更改其集合,并根据新集合中的数据重新呈现它,但似乎无法知道其集合何时发生更改?有没有可用的钩子?
: - collection
只是一个普通的财产
我有一个集合作为其模型的Backbone视图。如果通过构造函数传入集合,它可以在其初始化函数中将集合添加到集合中,但是如何知道集合是在构造之后设置的,以便它可以侦听集合中的事件?Backbone.js视图如何知道它的集合何时更改?
我希望能够在其生命周期中更改其集合,并根据新集合中的数据重新呈现它,但似乎无法知道其集合何时发生更改?有没有可用的钩子?
: - collection
只是一个普通的财产
我不认为有任何自动的方式来了解[注基于stusmith的回答,请参见下面的代码我的回答。
您可以始终提供一个函数setCollection
,该函数取消绑定旧集合中的事件(如果有),分配集合并重新绑定到新集合。
为了清楚起见,您还可以从initialize
中调用此函数。
这是基于stusmith的回答我的解决方案:
initialize: function(){
if(this.collection){
this.addCollectionListeners();
}
},
setCollection:function(collection){
if(collection != this.collection){
if(this.collection){
this.removeCollectionListeners();
}
this.collection = collection;
this.addCollectionListeners();
}
},
removeCollectionListeners:function(){
//Remove listeners
},
addCollectionListeners:function(){
//Add listeners
},
感谢。我已经在下面发布了这个答案的代码。 – Undistraction 2012-03-30 09:35:16