Javascript 如何检查主干集合是否已包含具有相同idAttribute的模型?

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可以是任何主干的默认id。 在将模型插入主干集合之前,我想检查该集合是否已包含具有相同idAttribute值的模型

myCollection.ContainesMyNewModel始终返回false。我猜这是因为候选模型不一定是集合中已经存在的同一实例

我试过了

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;//符合事实的
谢谢你,我还不知道。进入收藏级别。