如何在ko.mapping.fromJS之后清除数组链接

时间:2013-09-27 13:07:40

标签: javascript knockout.js

我有下一个代码用于将一些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 *属性中查找所有这些数据。

2 个答案:

答案 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