Knockout.js 取消嵌套对象的自定义映射
我有一个JSON对象,如: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", },
{
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
调用中。啊,是的,这很有意义。非常感谢。这是我的第一篇文章。我需要为你做点什么吗?我会把这个移到答案上来。