嵌套值上的Knockout.js映射选项被忽略 [英] Knockout.js mapping options being ignored on nested values

查看:89
本文介绍了嵌套值上的Knockout.js映射选项被忽略的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我无法获取基因敲除(snockout.js)映射选项来处理嵌套值.使用以下代码,第一级"shouldBeCopied"可以正常工作,并且嵌套的"shouldBeCopied"值始终是可观察的.

I am unable to get the knockout.js mapping options to work on nested values. With the following code, the first level "shouldBeCopied" works fine and the nested "shouldBeCopied" value is always an observable.

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

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

console.log(vm);

有什么想法吗?

如果有人想玩的话,这里是一个小提琴.

推荐答案

使用copyignoreobserve等选项时,不需要在映射选项中最小化对象结构(就像使用create)

When using the the copy, ignore, observe, etc options you don't need to minic the object structure in your mapping options (like when using create)

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

What you need to to is to use a property accessor expression ("nested.shouldBeCopied") in your copy array to configure nested properties:

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

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

将输出:

演示 JSFiddle .

这篇关于嵌套值上的Knockout.js映射选项被忽略的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆