我的 Backbone.js 模型的idAttribute
可以是任何值( Backbone.js 的默认值是“id”)。我希望在将模型插入到 Backbone.js 集合之前检查该集合是否已经包含具有相同idAttribute值的模型。myCollection.contains(myNewModel)
总是返回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();
但我不确定确切的语法。
1条答案
按热度按时间to94eoyn1#
您可以使用
Collection.get
来判断集合中是否有具有指定id
的模型,而不论基础idAttribute
为何。例如,
第一个
如果要使用
findWhere
,则必须使用square bracket notation作为属性的散列: