在嵌套值上忽略Knockout.js映射选项

时间:2013-08-31 23:19:04

标签: knockout.js mapping

我无法获取knockout.js映射选项来处理嵌套值。使用以下代码,第一级“shouldBeCopied”工作正常,嵌套的“shouldBeCopied”值始终是可观察的。

var data = {
    shouldBeCopied: "copied",
    nested: {
        shouldBeCopied : "copied"
    }
};

var vm = ko.mapping.fromJS(data, {
    'copy': ["shouldBeCopied"],
    "nested": {
        'copy': ["shouldBeCopied"]
    }
});

console.log(vm);

有什么想法吗?

Here's a fiddle如果有人想玩它。

1 个答案:

答案 0 :(得分:3)

使用copyignoreobserve等选项时,您无需在映射选项中迷失对象结构(例如使用create时)

您需要在"nested.shouldBeCopied"数组中使用属性访问器表达式(copy)来配置嵌套属性:

var data = {
    shouldBeCopied: "copied",
    nested: {
        shouldBeCopied : "copied"
    }
};

var vm = ko.mapping.fromJS(data, {
    'copy': ["shouldBeCopied","nested.shouldBeCopied"]
});

将输出:

enter image description here

演示JSFiddle