Javascript 一个集合监听主干中多个模型的更改
我有两个模型m1和m2,它们的属性attr相同,但会发生变化。我想将这两个模型分配给一个集合c1。然后我想听听集合中“attr”的变化,并确定“attr”在哪个模型中发生了变化。我尝试在集合中附加一个事件侦听器,如一些教程中所示,但在更改模型的属性“attr”时,它并没有侦听更改。解决这个问题的最佳方法是什么?是否可以在主干中侦听这样的更改?如果您将视图设置为这样,它应该可以工作:Javascript 一个集合监听主干中多个模型的更改,javascript,backbone.js,Javascript,Backbone.js,我有两个模型m1和m2,它们的属性attr相同,但会发生变化。我想将这两个模型分配给一个集合c1。然后我想听听集合中“attr”的变化,并确定“attr”在哪个模型中发生了变化。我尝试在集合中附加一个事件侦听器,如一些教程中所示,但在更改模型的属性“attr”时,它并没有侦听更改。解决这个问题的最佳方法是什么?是否可以在主干中侦听这样的更改?如果您将视图设置为这样,它应该可以工作: var Vue = Backbone.View.extend({ initialize: function
var Vue = Backbone.View.extend({
initialize: function() {
//attach a collection to the view
this.collection = collection1;
//fires when the 'attr' attribute changes in any model in the collection
this.listenTo(this.collection, 'change:attr', this.itHasChanged);
},
itHasChanged: function(e) {
alert('the model with id: ' + e.get('id') + ' has changed');
console.log(e)
}
});
这里有一个例子:你能展示一下你做了什么吗?这将有助于解释您遗漏了什么。m1和m2两个模型是同一个模型的实例吗?如果不将它们添加到一个集合中,听起来不是一个好方法。