【问题标题】:Knockout.js mapping options being ignored on nested valuesKnockout.js 映射选项在嵌套值上被忽略
【发布时间】:2013-08-31 23:19:04
【问题描述】:

我无法让 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 如果有人想玩它。

【问题讨论】:

    标签: knockout.js mapping


    【解决方案1】:

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

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

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

    将输出:

    演示JSFiddle.

    【讨论】:

    • 谢谢!我的英雄!这个功能真的应该放在文档中。
    • documtation 中有所提及:查找“深入研究数组/对象有效,但复制和观察可能冲突:”部分。但是这个特性并没有像它应该的那样清晰的文档。
    猜你喜欢
    • 2013-12-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-28
    • 2014-08-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多