2013-08-27 31 views
1

我有一個Backbone集合的設施。與集合關聯的模型是FacilityCode作爲模型Id屬性的Facility。從Backbone集合中提取幾個與Model ID列表匹配的模型

現在我有一個數組中的FacilityCode列表。是否有任何簡單的方法來創建一個集合,該集合中包含與該數組中的FacilityCode匹配的所有模型?

我可以使用collection.get(id)函數逐個獲取模型。但我正在尋找一個函數,我可以傳遞一組ID來返回一組匹配模型。

回答

3

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]); 
相關問題