KnockoutJS Mapping toJS忽略嵌套键

时间:2014-06-20 11:35:29

标签: knockout.js knockout-mapping-plugin

在KnockoutJS的映射插件中使用toJS时,我不能忽略嵌套属性吗?

示例:

var obj = {
    "akey": {
        "anestedkey": "ignore",
        "anotherkey": "value"
    }
};

console.log(ko.mapping.toJS(obj, {
    "ignore": ["akey.anestedkey"],
}));

预期输出

{
    akey: {
        anotherkey: "value"   
    }
}

实际输出

{
    akey: {
        anestedkey: "ignore"
        anotherkey: "value"   
    }
}

JSFiddle:http://jsfiddle.net/48KVU/

2 个答案:

答案 0 :(得分:3)

如果你删除了父母(如果你知道你的密钥在obj中是唯一的,或者如果你想删除所有出现的情况),它就有效:

var obj = {
    "akey": {
        "anestedkey": "ignore",
        "anotherkey": "value"
    }
};

console.log(ko.mapping.toJS(obj, {
    "ignore": ["anestedkey"], //here
}));

http://jsfiddle.net/GabrielTran/48KVU/1/

答案 1 :(得分:1)

据我所知,你只能在制图时提供选项; toJStoJSON用于取消映射。

使用嵌套键在映射时工作正常:

var obj = {
    "akey": {
        "anestedkey": "ignore",
        "anotherkey": "value"
    }
};

console.log(ko.mapping.fromJS(obj, {
    "ignore": ["akey.anestedkey"],
}));

http://jsfiddle.net/sjroesink/Sg5KK/