我有一个骨干设施集合。与该集合关联的模型是一个以 FacilityCode 作为模型 ID 属性的 Facility。
现在我有一个数组中的 FacilityCode 列表。是否有任何简单的方法可以创建一个包含在该数组中具有匹配 FacilityCode 的所有模型的集合?
我可以使用 collection.get(id) 函数来一一获取模型。但我正在寻找一个函数,我可以将一组 ID 传递给该函数,该数组将返回匹配模型的集合。
我有一个骨干设施集合。与该集合关联的模型是一个以 FacilityCode 作为模型 ID 属性的 Facility。
现在我有一个数组中的 FacilityCode 列表。是否有任何简单的方法可以创建一个包含在该数组中具有匹配 FacilityCode 的所有模型的集合?
我可以使用 collection.get(id) 函数来一一获取模型。但我正在寻找一个函数,我可以将一组 ID 传递给该函数,该数组将返回匹配模型的集合。
过滤器对这类事情很有用。如果您愿意,可以将它很好地包装在您的集合对象的定义中:
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]);