Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/288.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_Javascript_Jquery_Json_Knockout.js_Oracle Jet - Fatal编程技术网

Javascript 如何将异步调用返回的Json数据正确绑定到敲除ObservalArray

Javascript 如何将异步调用返回的Json数据正确绑定到敲除ObservalArray,javascript,jquery,json,knockout.js,oracle-jet,Javascript,Jquery,Json,Knockout.js,Oracle Jet,我试图通过一个ajax调用获取一个json对象,并将其放入一个敲除可观察对象中 var self = this; this.arnVal = ko.observableArray([]); var promise = $.getJSON('../../url/to/my/api'); promise.done(function(data) { console.log(data); console.log(data["metricValues"]);

我试图通过一个ajax调用获取一个json对象,并将其放入一个敲除可观察对象中

var self = this;
this.arnVal = ko.observableArray([]);

var promise = $.getJSON('../../url/to/my/api');

promise.done(function(data) {
         console.log(data);
         console.log(data["metricValues"]);                
         self.arnVal().push(data["metricValues"]);
         console.log(self.arnVal());                                     
      });
通过
promise.done()
函数调用中的控制台日志正确打印期望值。也就是说,数据的数组格式是与我绑定的Oracle Jet组件所期望的正确格式

这段代码位于敲除组件javascript文件中,我在其他地方的HTML文件中使用它作为敲除组件的一部分。 在组件的HTML文件中,我使用
arnVal
填充Oracle Jet图表

但是,图表永远不会填充从
getJSON
调用获得的更新的
arnVal
数据


我做错了什么?

只需从
self.arnVal().push(…)
中删除额外的参数即可


目前,paren正在解除可观察数组的绑定,并将新项推送到底层javascript数组。这将绕过敲除的事件触发器。

只需从
self.arnVal().push(…)中删除额外的参数即可。


目前,paren正在解除可观察数组的绑定,并将新项推送到底层javascript数组。这将绕过敲除的事件触发器。

删除此处的括号:

self.arnVal().push(data["metricValues"]);
         //^^ here
请参见规范:

var myObservableArray=ko.observableArray();//最初是一个空数组 myObservableArray.push('Some value');//添加值并通知观察者


原因是
self.arnVal
是一个可观察的数组,而
self.arnVal()
是一个简单的数组(它没有通知功能)。

删除此处的括号:

self.arnVal().push(data["metricValues"]);
         //^^ here
请参见规范:

var myObservableArray=ko.observableArray();//最初是一个空数组 myObservableArray.push('Some value');//添加值并通知观察者

原因是
self.arnVal
是一个可观察的数组,而
self.arnVal()
是一个简单数组(没有通知功能)