我们遇到Backbone的一个基本问题:如果我将相同的模型添加到集合A和B A.add()
和B.add()
,然后我将其从集合A中删除{{1在集合B听到的模型上触发remove事件,因此模型也从集合B中移除。有这种默认行为的首选方法吗?我们每次操作这些集合时都必须指定A.remove()
,还是有更好的方法?
谢谢, -mykle -
答案 0 :(得分:0)
初始化模型时,需要覆盖模型的更改方法。
Ship = Backbone.Model.extend({
defaults: {
name:'titanic',
cas: new Array()
},
initialize: function() {
this.on('change:cas', this.notify, this);
this.on('change', this.notify, this);
},
notify: function() {
console.log('cas changed');
},
notifyGeneral: function() {
console.log('general change');
}
});
这是具有两个更改事件的模型的一个很好的示例。您需要检查模型的集合名称,并相应地更改或不更改。在这里,您可能会这样做:
initialize: function() {
this.on('change', this.notify, this);
},
notify: function() {
console.log('cas changed');
if(this.collection.id = 'CollectionB'){
return true;
}else{
return false;
}
}
这是一个很好的参考: