仅观察observableArray

时间:2015-08-20 04:21:12

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

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

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

有没有办法做到这一点,还是我必须通过数组运行并进行手动操作? (然后我不需要映射插件开始)。

1 个答案:

答案 0 :(得分:4)

使用“向下钻取”语法无法执行此操作,但您可以使用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属性:

enter image description here