2014-01-10 49 views
0

我想只包含並返回選項屬性設置爲true時,我使用ko.mapping.fromJS實用程序填充我的數組。在基因敲除js中使用映射選項時,如何跳過一個項目而不包含它?

我寫了下面的代碼,但它是人口與未定義的數組如果項目沒有選定的屬性。

var mappingOptions = { 
       create: function (options) { 
        if (options.data.Selected) { 
         var item = ko.mapping.fromJS(options.data); 
         return item; 
        } 
       } 
      }; 




    self.Medias = ko.mapping.fromJS(ko.toJS(data.Medias), mappingOptions); 

生成的數組不應該有未定義的元素。

[Object, undefined, Object, undefined, Object, undefined, Object] 

回答

0

說實話,你最好先過濾JS數據:

var selectedMedia = ko.utils.arrayFilter(ko.toJS(data.Medias), function(item) { 
     return item.Selected; 
    }); 
self.Medias = ko.mapping.fromJS(ko.toJS(data.Medias), mappingOptions); 
相關問題