我从文档(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"});
有没有办法做到这一点,还是我必须通过数组运行并进行手动操作? (然后我不需要映射插件开始)。
答案 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
属性: