我的屏幕上有一个按钮,用于将用户信息预填充到我已设置的集合中。这工作......实际上有点太好了。每次用户点击按钮时,它都会添加一个新模型。为了防止用户向此集合添加多个模型,我想检查以确保集合中的属性与我尝试传入的属性不同。如果这有任何意义。
我的对象看起来像这样
var object = {
First: first,
Second: second
};
我正在插入它
this.app.user.get(type).add(object); //My type is what collection is being passed to it
然后我抓住属性
中每个模型的'Second'属性var dup = this.app.user.get(type).map(function(model){
return model.get('Second');
});
我遇到的问题是看到我的属性addressTo(只是一个字符串)等于该dup对象中的任何内容。我已经尝试了一些东西,但没有什么能让我走得太远而且最终破坏了更多东西。
任何帮助将不胜感激!
答案 0 :(得分:0)
当你不想使用你拥有的数组时,你可以使用下划线来检查数组是否包含元素(下划线是主干的核心依赖关系,所以你已经拥有它;)):( / p>
_.contains(dup, obj.addressTo)
否则您也可以直接使用该集合:
collection.where({ 'Second': obj.addressTo }).length > 0
答案 1 :(得分:0)
您必须define an id property模型,Backbone会关心重复项。 Here is有关add
方法的详细信息。
小例子如何运作:
var Type = Backbone.Model.extend({
idAttribute: 'Second'
});
var types = new Backbone.Collection([{ First: 1, Second: 11 }], {model: Type})
types.add(new Type({ First: 1, Second: 11 }));
types.add(new Type({ First: 2, Second: 22 }));
types.add(new Type({ First: 2, Second: 22 }));
console.log(types.length); // 2