【问题标题】:Search collection and retrieve model backbonejs搜索集合和检索模型backbonejs
【发布时间】:2013-01-22 01:12:13
【问题描述】:

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

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

我的收藏有大约 100 个 myModel。

我正在尝试通过a 搜索集合,找到它然后返回a 的整个myModel,以便我可以访问其他属性?

【问题讨论】:

    标签: backbone.js collections models


    【解决方案1】:

    如果我正确理解您的问题,您想在 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'));
    });
    

    【讨论】:

    • 感谢@georgedyer - 它会在我的情况下返回一个独特的模型,以便我可以使用foundModel.get('e') 例如。这可以让我这样做吗?
    • 是的,这些方法返回您收藏中的模型数组
    • 是的 - 只需要选择数组;)即foundModels[0]。非常感谢您的帮助!
    • 没有问题:这里有一个例子:jsfiddle.net/georgedyer/YVQC3/3
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-02-09
    • 1970-01-01
    • 1970-01-01
    • 2011-02-01
    • 2016-02-12
    • 2014-07-24
    • 1970-01-01
    相关资源
    最近更新 更多