Javascript 如何检查主干集合是否已包含具有相同idAttribute的模型?
我的主干模型的idAttribute可以是任何主干的默认id。 在将模型插入主干集合之前,我想检查该集合是否已包含具有相同idAttribute值的模型 myCollection.ContainesMyNewModel始终返回false。我猜这是因为候选模型不一定是集合中已经存在的同一实例 我试过了Javascript 如何检查主干集合是否已包含具有相同idAttribute的模型?,javascript,backbone.js,underscore.js,Javascript,Backbone.js,Underscore.js,我的主干模型的idAttribute可以是任何主干的默认id。 在将模型插入主干集合之前,我想检查该集合是否已包含具有相同idAttribute值的模型 myCollection.ContainesMyNewModel始终返回false。我猜这是因为候选模型不一定是集合中已经存在的同一实例 我试过了 idAttribute: string = myColllection.model.prototype.idAttribute; // Works fine let id: string = ite
idAttribute: string = myColllection.model.prototype.idAttribute; // Works fine
let id: string = itemToInsert.get(idAttribute); // Works fine
let exists : boolean : myCollection.findWhere({ idAttribute : id }); // Undefined!
我想要类似的东西
let test: boolean = _.any(self.collection, item => idAttributeValue === item.get("idAttribute")).value();
但是我不确定确切的语法。您可以使用它来确定集合是否具有具有给定id的模型,而不考虑基础idAttribute
比如说,
var M=Backbone.Model.extend{
idAttribute:“随便什么”
};
var C=Backbone.Collection.extend{
型号:M,
hasModel:functioninput{
return!!this.getinput;
}
};
var c=新的c[{无论如何:1}];
console.logc.hasModel1;//符合事实的
console.logc.hasModel2;//错误的
var newModel=newm{whatever:1};
console.logc.hasModelnewModel;//符合事实的
谢谢你,我还不知道。进入收藏级别。