【问题标题】:Extracting several models from a Backbone Collection that matches List of Model IDs从与模型 ID 列表匹配的主干集合中提取多个模型
【发布时间】:2013-08-27 03:27:31
【问题描述】:

我有一个 Backbone 的设施集合。与该集合关联的模型是一个以 FacilityCode 作为模型 Id 属性的 Facility。

现在我有一个数组中的 FacilityCode 列表。有没有什么简单的方法可以创建一个包含所有在这个数组中匹配 FacilityCode 的模型的集合?

我可以使用 collection.get(id) 函数来一一获取模型。但我正在寻找一个函数,我可以将一个 ID 数组传递给该函数,该数组将返回匹配模型的集合。

【问题讨论】:

    标签: javascript backbone.js collections


    【解决方案1】:

    filter 对这类事情很有用。如果您愿意,可以将它很好地包装在您的集合对象的定义中:

    Facilities = Backbone.Collection.extend({
    
        // ...
    
        getAllForCodes: function(facilityCodes) {
            var models = this.filter(function(facility) {
                return (_.indexOf(facilityCodes, facility.get('FacilityCode')) !== -1);
            }); 
            return new Facilities(models);
        }
    
    });
    

    ...并使用它来获取设施代码数组的所有设施:

    var myFacilities = facilities.getAllForCodes([1, 2, 3]);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2015-05-30
      • 2012-12-25
      • 2013-11-22
      • 1970-01-01
      • 2015-08-31
      • 1970-01-01
      • 2011-11-06
      相关资源
      最近更新 更多