Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/367.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/27.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从json对象中删除ObservalArray的maping.fromJS。数据丢失_Javascript_Knockout.js_Mapping - Fatal编程技术网

Javascript 从json对象中删除ObservalArray的maping.fromJS。数据丢失

Javascript 从json对象中删除ObservalArray的maping.fromJS。数据丢失,javascript,knockout.js,mapping,Javascript,Knockout.js,Mapping,我有一个视图模型,有一个可观察的和一个可观察的阵列。点击按钮可以填充一个JSON对象并将其映射到视图模型……我认为“应该”填充ObservalArray。按钮点击发生。没有错误。如果在映射发生时运行调试器,则会填充obserableArray,但不会填充obserableArray。这意味着假定基于ObservalArray显示的HTML对象不会得到更新 HTML: 我真正的代码从web服务中获取数据。我认为上面创建一个对象并将其转换为JSON,然后使用ko.mapping.fromJS对其进

我有一个视图模型,有一个可观察的和一个可观察的阵列。点击按钮可以填充一个JSON对象并将其映射到视图模型……我认为“应该”填充ObservalArray。按钮点击发生。没有错误。如果在映射发生时运行调试器,则会填充obserableArray,但不会填充obserableArray。这意味着假定基于ObservalArray显示的HTML对象不会得到更新

HTML:

我真正的代码从web服务中获取数据。我认为上面创建一个对象并将其转换为JSON,然后使用ko.mapping.fromJS对其进行映射最能代表正在发生的事情。无论如何


我怀疑我做了一些愚蠢的事情,或者至少假设了一些我不应该做的事情。

您正在使用
ko.toJSON(testdata)
转换为JSON,但您没有使用
ko.mapping.fromJS(jsonData,{},me)但来自普通JS对象

toJSON
fromJSON
方法应成对使用:

var jsonData = ko.toJSON(testdata);

ko.mapping.fromJSON(jsonData, {}, me);
这同样适用于
toJS
fromJS

var jsonData = ko.toJS(testdata);

ko.mapping.fromJS(jsonData, {}, me);

演示。

ko.mapping.js在您的外部资源中找不到,这就是为什么它不起作用。knockout.mapping.js在JSFIDLE“外部资源”中。这不是正确的吗?哈哈…我做了一个多么糟糕的复制粘贴工作。外部资源现在应该是固定的。但是,这个问题仍然存在,它修复了JSFIDLE。谢谢现在我只需要把它应用到我真正的代码中。
var jsonData = ko.toJSON(testdata);

ko.mapping.fromJSON(jsonData, {}, me);
var jsonData = ko.toJS(testdata);

ko.mapping.fromJS(jsonData, {}, me);