【发布时间】:2012-12-02 18:58:51
【问题描述】:
我有一个 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",
}
]
}
我正在尝试使用敲除映射插件为所有子对象创建自定义选定属性,如下所示:
{
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 级子级不是使用我的映射创建的。
* 我的模型可以有无限数量的嵌套层级 *
我的问题是如何让孩子创建适用于所有嵌套的孩子?
【问题讨论】:
-
您可能希望将映射选项传递给您在
childModle构造函数中进行的ko.mapping.fromJS调用。 -
啊,是的,这是有道理的。谢谢一堆。这是我的第一篇文章。我需要为你做点什么吗?
-
我会将其移至答案。
标签: knockout.js knockout-mapping-plugin