Javascript 创建一个模型属性";独特的;在集合模型中

Javascript 创建一个模型属性";独特的;在集合模型中,javascript,backbone.js,backbone.js-collections,Javascript,Backbone.js,Backbone.js Collections,我有一组主干模型,每个模型都有几个属性:_id、code、title、date和selected 我希望一次仅在一个集合模型中“selected”属性值为true。当我将模型设置为“选定”时,集合中的所有其他模型都应设置为{selected:false} 我正在考虑两种不同的解决方案: 1) 从模型的“内部”:我可以监听所选属性的更改,循环所有父集合项,如果_id!=身份证 2) 从“外部”,循环集合模型,将all设置为selected:false,但与我要选择的id匹配的id除外:true 有

我有一组主干模型,每个模型都有几个属性:_id、code、title、date和selected

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

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

1) 从模型的“内部”:我可以监听所选属性的更改,循环所有父集合项,如果_id!=身份证

2) 从“外部”,循环集合模型,将all设置为selected:false,但与我要选择的id匹配的id除外:true

有没有更好的做法? 谢谢

这是另一个解决方案3)

例如,如何在集合中存储附加数据。取自

您可以将selectedId存储在集合元属性中。它对于每个系列都是唯一的。
而且模型中的“selected”属性没有必要。

您不理解这个问题。每个模型都必须具有选定的特性。我只是想避免他们中不止一个同时拥有它!然后,应使用您的两种解决方案。如果没有你的注意力,这些属性会自我改变
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);