在集合模型中使模型属性“唯一”

时间:2014-09-16 18:24:49

标签: javascript backbone.js backbone-collections

我有一组Backbone模型,每个模型都有几个属性:_id,代码,标题,日期和选中

我希望一次只在一个集合模型中将“selected”属性值设置为 true 。当我将模型设置为“已选择”时,集合中的所有其他模型都应设置为{selected:false}

我正在考虑两种不同的解决方案:

1)来自模型的“内部”:我可以监听所选属性的更改,循环所有父集合项,并设置选中:false if if _id!= id of this

2)从“outside”循环遍历集合模型,将all设置为selected:false,除了匹配id的人我想要被选中:true。

有更好的做法吗? 谢谢

1 个答案:

答案 0 :(得分:0)

这是另一个解决方案3)

就像示例一样,如何在集合中存储其他数据。取自here

var MyCollection = Backbone.Collection.extend({
    meta: function(prop, value) {
        if (value === undefined) {
            return this._meta[prop]
        } else {
            this._meta[prop] = value;
        }
    },
});

var collection = new MyCollection();
collection.add(someModels);
collection.meta("selectedId", value);

您可以将selectedId存储在集合元素中。每个系列都将是独一无二的。 并且没有必要选择'模特中的财产。