仅观察 observableArray 中每个对象的特定 属性 个对象

observe only specific property of object for every object in an observableArray

我从文档 (http://knockoutjs.com/documentation/plugins-mapping.html) 中了解到 'Drilling down into arrays/objects',但我希望它适用于对象数组中的每个对象,而不仅仅是示例中的一个索引

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

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

您不能使用 "drilling down" 语法执行此操作,但您可以使用 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 属性: