我有一组Backbone模型,每个模型都有几个属性:_id,代码,标题,日期和选中。
我希望一次只在一个集合模型中将“selected”属性值设置为 true 。当我将模型设置为“已选择”时,集合中的所有其他模型都应设置为{selected:false}
。
我正在考虑两种不同的解决方案:
1)来自模型的“内部”:我可以监听所选属性的更改,循环所有父集合项,并设置选中:false if if _id!= id of this
2)从“outside”循环遍历集合模型,将all设置为selected:false,除了匹配id的人我想要被选中:true。
有更好的做法吗? 谢谢
答案 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存储在集合元素中。每个系列都将是独一无二的。 并且没有必要选择'模特中的财产。