-1

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

4

2 回答 2

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);
于 2013-09-27T13:16:09.507 回答
-1

我发现解决方案使用 ko.mapping.toJS 插入 ko.toJS https://groups.google.com/forum/#!topic/knockoutjs/6dEorpiyOzY

于 2013-09-27T13:27:12.447 回答