2
我們遇到了骨幹的一個基本問題:如果我將相同的模型添加到集合A和B A.add()
和B.add()
,然後我從集合A中刪除它A.remove()
,刪除事件在集合B聽到的模型上觸發,因此模型也從集合B中刪除。有沒有一種圍繞這種默認行爲的首選方式?我們每次操作這些集合時都必須指定{silent: true}
,還是有更好的方法?如何從一個集合中刪除骨幹模型
感謝, -mykle-
我們遇到了骨幹的一個基本問題:如果我將相同的模型添加到集合A和B A.add()
和B.add()
,然後我從集合A中刪除它A.remove()
,刪除事件在集合B聽到的模型上觸發,因此模型也從集合B中刪除。有沒有一種圍繞這種默認行爲的首選方式?我們每次操作這些集合時都必須指定{silent: true}
,還是有更好的方法?如何從一個集合中刪除骨幹模型
感謝, -mykle-
你需要重寫你的模型改變方法,當你進行初始化。
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;
}
}
這裏有一個很好的參考:
你能澄清你會通過_「的模式是從集合體B刪除以及」是什麼意思_?你的''remove''事件偵聽器是否從集合B中刪除模型,或者模型是否被自動刪除(沒有你的動作)? – hindmost 2014-10-08 12:14:41