【问题标题】:How to skip an item and not include it when using mapping options in knockout js?在淘汰赛js中使用映射选项时如何跳过一个项目而不包括它?
【发布时间】:2014-01-29 08:09:03
【问题描述】:

当我使用 ko.mapping.fromJS 实用程序填充我的数组时,我只想包含并返回将 selected 属性设置为 true 的项目。

我已经编写了以下代码,但如果项目没有 selected 属性,它会使用 undefined 填充数组。

    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]

【问题讨论】:

    标签: knockout.js


    【解决方案1】:

    说实话,你最好先过滤一下 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);
    

    【讨论】:

      猜你喜欢
      • 2013-07-16
      • 1970-01-01
      • 2013-02-24
      • 1970-01-01
      • 1970-01-01
      • 2012-01-17
      • 2013-07-07
      • 2014-03-28
      • 2012-06-08
      相关资源
      最近更新 更多