当我取一个敲除对象,通过ko.toJSON将其序列化为JSON,然后多次使用ko.mapping.fromJSON将其从JSON中取消序列化时,加载的对象具有递归增长的__ko_mapping__
属性。
样本代码:
var joe = new Person();
for (var i = 0; i < 10; i++) {
var json = ko.toJSON(joe);
joe = ko.mapping.fromJSON(json);
}
复制它的简单JSFiddle:
http://jsfiddle.net/Gc89Q/1/
如何在不让序列化的json表单变得巨大的情况下多次加载和保存?
我考虑在加载时将__ko_mapping__
属性设置为undefined,但不知道是否有更好的方法或我缺少的东西。
这是我提交问题的bug吗?
不要覆盖模型。相反,将其传递给fromJSON
,以便更新模型:
ko.mapping.fromJSON(json, joe);
http://jsfiddle.net/Gc89Q/2/