如何从一个集合中删除骨干模型

时间:2014-10-07 17:42:53

标签: javascript backbone.js

我们遇到Backbone的一个基本问题:如果我将相同的模型添加到集合A和B A.add()B.add(),然后我将其从集合A中删除{{1在集合B听到的模型上触发remove事件,因此模型也从集合B中移除。有这种默认行为的首选方法吗?我们每次操作这些集合时都必须指定A.remove(),还是有更好的方法?

谢谢, -mykle -

1 个答案:

答案 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;
    }
}

这是一个很好的参考:

Backbone.js : change not firing on model.change()