gpt4 book ai didi

javascript - 如何将异步调用返回的Json数据正确绑定(bind)到knockout observableArray

转载 作者:行者123 更新时间:2023-11-28 13:10:25 25 4
gpt4 key购买 nike

我正在尝试通过ajax调用获取一个json对象,并将其放入 knockout 可观察中。

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() 函数调用内的控制台日志正确打印​​了预期值。也就是说,数据采用我绑定(bind)的 Oracle Jet 组件所期望的正确数组格式。

此代码位于 Knockout 组件 javascript 文件中,我在其他位置的 HTML 文件中将其用作 Knockout 组件的一部分。在组件的 HTML 文件中,我使用 arnVal 填充 Oracle Jet 图表。

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

我做错了什么?

最佳答案

只需从 self.arnVal().push(...) 中删除多余的括号即可。

self.arnVal.push(data["metricValues"]);

目前,括号正在拆箱可观察数组并将新项目推送到底层 JavaScript 数组。这绕过了 knockout 的事件触发器。

关于javascript - 如何将异步调用返回的Json数据正确绑定(bind)到knockout observableArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42981165/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com