我有下一个代码用于将一些js对象映射到模型
...
self.mydata= ko.observable(ko.mapping.fromJS(jsonobj));
...
在jsonobj里面我有其他json数组属性(myarr属性)。
我需要在更改后将此数据发送到WCF服务,但 myarr 必须为空 我接下来做了:
var tempobj = ko.toJS(self.mydata);
tempobj.myarr = null;//possible huge data
var data = { "p1": JSON.stringify(tempobj ) };
但是在 JSON.stringify(tempobj)之后,我看到mydata属性为空,但字符串值包含来自 mydata 数组的数据,看起来引用仍然存在。 如何删除所有这些数据?
感谢。
更新1 它在* ko_mapping *属性中查找所有这些数据。
答案 0 :(得分:1)
我快速jsFiddle,但我不完全确定你的意图是什么。您是要尝试清除阵列还是将其从对象中删除?
两者都是在提供的小提琴中完成的。
var model = {
p1: [
{ id: 1, text: 'one' },
{ id: 2, text: 'two' }
]
};
// do you mean clear the array before sending?
//model.p1 = [];
// or do you mean remove the array before sending?
//delete model.p1;
document.getElementById('json').innerText = ko.toJSON(model);
答案 1 :(得分:-1)
我找到解决方案使用ko.mapping.toJS插入ko.toJS https://groups.google.com/forum/#!topic/knockoutjs/6dEorpiyOzY