搜索集合并检索模型backbonejs

时间:2013-01-22 01:12:13

标签: backbone.js collections models

我正在尝试搜索集合中的模型属性,然后抓取并返回整个模型?

var myModel = Backbone.Model.extend({
  defaults: {
      a: '',
      b: '',
      c: '',
      d: '',
      e: ''
  }
});

我的收藏品大约有100个myModels。

我正在尝试按a搜索该集合,找到它,然后返回myModel的{​​{1}},以便我可以访问其他属性?

1 个答案:

答案 0 :(得分:13)

如果我正确理解您的问题,您希望在Backbone集合中使用where方法,请参阅文档:

http://backbonejs.org/#Collection-where

因此,给定一个名为myCollection的MyCollection实例,其中包含MyModels,您可以说:

var foundModels = myCollection.where({a:'some value'});

foundModels将包含您寻找的模型数组

顺便说一句,如果您正在进行更复杂的搜索,请使用filter方法,将函数作为第一个参数传递,该参数在所需的匹配项上返回true:

var modelsWhoseAStartsWithA = myCollection.filter(function(anyModel) {
    var startsWithA = new RegExp(/^[aA]/);
    return startsWithA.test(anyModel.get('a'));
});