2

我无法让 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);

有任何想法吗?

如果有人想玩它,这里有一个小提琴。

4

1 回答 1

3

使用copy, ignore, observe, 等选项时,您不需要在映射选项中缩小对象结构(例如使用 时create

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

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

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

将输出:

在此处输入图像描述

演示JSFiddle

于 2013-09-01T05:42:38.537 回答