【发布时间】:2013-12-14 09:07:12
【问题描述】:
假设我有这些数据:
var data = {
name: 'Graham',
children: [
{ id : 1, name : 'Lisa' }
]
}
现在我映射它,添加一些属性并将其映射回来:
var mappedData = ko.mapping.fromJS(data);
mappedData.age = 44;
mappedData.children[0].age = 12;
var unmappedData = ko.mapping.toJS(mappedData);
在 unmappedData 根对象中,年龄不存在,但在子对象中存在。 这是因为映射插件会跟踪原始属性,但仅限于根对象。
除了对根以外的每个子集合使用自定义“创建”映射之外,还有其他方法可以为子集合对象启用此跟踪吗?
【问题讨论】:
-
所以你希望
unmappedData.children[0].age上的那个不应该是12?或者你希望unmappedData.age应该是 44? -
在 unmappedData 对象中,我希望年龄不显示。对于根对象和子对象。
-
那么您唯一可行的选择可能是为每个子集合使用自定义
create映射...但您可以使用ko.mapping.visitModel方法生成映射配置:jsfiddle.net/2AR75 -
这正是我的意思。谢谢!如果你把它放在一个答案中,我会给你答案。
标签: knockout.js knockout-mapping-plugin