仅观察 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
属性:
我从文档 (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
属性: