Knockout.js 取消嵌套对象的自定义映射

Knockout.js 取消嵌套对象的自定义映射,knockout.js,knockout-mapping-plugin,Knockout.js,Knockout Mapping Plugin,我有一个JSON对象,如: { id:"a", type:"simple", children:[ { id:"a.1", type:"simple", children:[ { id:"a.1.1", type:"simple", },

我有一个JSON对象,如:

{
    id:"a",
    type:"simple",
    children:[
        {
            id:"a.1",
            type:"simple",
            children:[
                {
                    id:"a.1.1",
                    type:"simple",
                },
                {
                    id:"a.1.2",
                    type:"simple",
                }
            ]
        },
        {
            id:"a.2",
            type:"simple",
        },
        {
            id:"a.2",
            type:"simple",
        }
    ]
}
我正在尝试使用knockout mapping插件为所有子对象创建自定义选定属性,如下所示:

{
    id:"a",
    type:"simple",
    children:[
        {
            id:"a.1",
            type:"simple",
            selected:true,
            children:[
                {
                    id:"a.1.1",
                    type:"simple",
                    selected:true
                },
                {
                    id:"a.1.2",
                    type:"simple",
                    selected:true
                }
            ]
        },
        {
            id:"a.2",
            type:"simple",
            selected:true
        },
        {
            id:"a.2",
            type:"simple",
            selected:true
        }
    ]
}
目前我的代码如下所示:

getMapping : function() {
    var childModle = function(data) {
        data.selected = false;
        ko.mapping.fromJS(data, {}, this);
        };
        var mapping = {
            "children" : {
                create : function(options) {
                    return new childModle(options.data);
                }
            }
        };
    return mapping;
},

var mapping =  this.getMapping();
var mappedModel = ko.mapping.fromJS(model, mapping);
这只适用于顶级儿童。2-n级别的子级不是使用“我的映射”创建的

*我的模型可以有无限数量的嵌套级别*


我的问题是如何使子项创建应用于所有嵌套子项?

您希望将映射选项传递到
ko.mapping.fromJS
调用中,该调用是在
childModle
构造函数中进行的

您可能希望将映射选项传递到在
childModle
构造函数中进行的
ko.mapping.fromJS
调用中。啊,是的,这很有意义。非常感谢。这是我的第一篇文章。我需要为你做点什么吗?我会把这个移到答案上来。