【问题标题】:observe only specific property of object for every object in an observableArray对于 observableArray 中的每个对象,仅观察对象的特定属性
【发布时间】:2015-11-13 13:55:14
【问题描述】:

我从文档 (http://knockoutjs.com/documentation/plugins-mapping.html) 中了解“深入研究数组/对象”,但我希望它适用于对象数组中的每个对象,而不仅仅是示例中的一个索引

var data = {
    a: "a",
    b: [{ b1: "v1" }, { b2: "v2" }] 
};
var result = ko.mapping.fromJS(data, { observe: "b[0].b1"});

有没有办法做到这一点,还是我必须遍历数组并手动完成? (那么我就不需要映射插件了)。

【问题讨论】:

    标签: knockout.js knockout-2.0 knockout-mapping-plugin


    【解决方案1】:

    您无法使用“向下钻取”语法执行此操作,但您可以使用 create 选项嵌套映射配置:

    var result = ko.mapping.fromJS(data, {
        observe: " ", // to copy every other property, a in this example 
        b: {
            create: function (options) {
                return ko.mapping.fromJS(options.data, {
                    observe: "b1"
                });
            }
        }
    });
    

    演示JSFiddle.

    使用这个只有 b1 属性将是可观察的:

    【讨论】:

      猜你喜欢
      • 2012-12-06
      • 1970-01-01
      • 1970-01-01
      • 2019-10-27
      • 1970-01-01
      • 2021-03-30
      • 1970-01-01
      • 1970-01-01
      • 2020-08-05
      相关资源
      最近更新 更多