Backbone.js 将主干更改事件绑定到集合中模型的属性
我有一个视图,它包含一个Backbone.js 将主干更改事件绑定到集合中模型的属性,backbone.js,backbone-events,Backbone.js,Backbone Events,我有一个视图,它包含一个集合,如下所示: MyView = Backbone.View.extend({ initialize: function() { this.collection.on("change://an attribute of a model in aCollectionToRender", someAction); } }); var MyViewInstance = new MyView({ collection: aCollecti
集合
,如下所示:
MyView = Backbone.View.extend({
initialize: function() {
this.collection.on("change://an attribute of a model in aCollectionToRender", someAction);
}
});
var MyViewInstance = new MyView({
collection: aCollectionToRender
});
基本上,我不希望MyView
监听整个集合上的更改,只监听集合包含的模型的单个属性
我意识到有很多替代方案:
a集合创建视图,并在这些视图中附加.on(“更改”)
事件。我不想这样做,因为这对我的处境不合适
this.collection.on(“change”)
事件,并根据我的要求筛选事件处理程序即可。这就不那么优雅了,如果主干已经允许我按照上面的要求编写事件过滤器,那么这就是重复的代码我只是想知道是否有任何方法可以编写一个已经进行过滤的事件侦听器。这个问题也可能是重复的;我看了一下,但没有发现任何与此完全相同的内容,然而,有很多主干问题也许我误解了你的问题,但你可以完全按照你的表现去做。看看这本书
啊!我想你是对的!出于某种原因,我认为当它是一个集合时,
change:attributeName
中的attributeName
引用的是集合的一个属性,而不是模型。好的,但是你怎么做呢:this.collection.on(“change”,function(model,property){//获取此处更改的属性…})???
MyView = Backbone.View.extend({
initialize: function() {
this.collection.on("change:attributeName", this.someAction /*function to call*/, this);
},
someAction: function(model, value, options){
}
});