如果模型包含使用findWhere存在的密钥,则返回骨干模型

时间:2015-10-06 03:01:24

标签: javascript backbone.js

我正在尝试使用findWhere来查明集合是否具有包含特定键的模型(如果它存在则将是一个对象)。我只想知道该集合是否包含此标准。

以下是一个示例集合:

false

我如何确定此集合是否具有带有findWhere密钥var collection = new Backbone.Collection([ {name: "Tim", age: 5}, {name: "Ida", age: 26, schools: {elementary: "School One", middle_school: "School Two"} }, {name: "Rob", age: 55} ]); 的模型?有没有更快的方法来确定这个?

1 个答案:

答案 0 :(得分:4)

findWhere()并非如此。我使用find()some()

collection.find(function (model) {
  return model.has('schools');
});

它将返回通过测试的第一个模型(或undefined)。如果您不关心模型,您只需测试返回值的真实性,或者您可以使用some()代替:

collection.some(function (model) {
  return model.has('schools');
});

如果模型通过测试,它将返回true。当然,如果没有通过测试,他们就不会记录它返回的内容。

有关详细信息,请参阅Collection : Underscore Methods上的文档。