gpt4 book ai didi

javascript - 带有 knockout.JS 的异步 getJSON

转载 作者:行者123 更新时间:2023-11-29 21:42:07 25 4
gpt4 key购买 nike

我正在尝试使用以下代码在我的 HTML 中使用 Knockout.JS 调用 JSON 结果。

$(document).ready(function () {
var submissionViewModel = new SubmissionModel();
submissionViewModel.getSubmission().done(function () {
ko.applyBindings(submissionViewModel, document.getElementById("submission"));
})
});

var SubmissionModel = function () {
var self = this;
self.Submission = ko.observable(null);

self.getSubmission = function () {

$.getJSON('/Submission/GetSubmission',
function (data) {
self.Submission = ko.mapping.fromJSON(JSON.stringify(data));
}
);
}
}

对于初学者来说,我对 Knockout JS 库还很陌生,所以请多多包涵。据我所知,我的应用绑定(bind)发生在我的 JSON 加载到 Submission 属性之前。

我试着把线放在床上并开始摇动 Gradle ,但这导致了以下错误

Uncaught TypeError: Unable to process binding text: function (){return (). } Message: Cannot read property of null

我知道发生了什么,我需要停止执行 $(document).ready 代码,直到 JSON 调用完成。我尝试使用 jQuery 中的 .done 函数来实现这一点,但这导致了以下错误

Cannot read property 'done' of undefined

由于我在 knockout 方面没有那么丰富的经验,你们中的任何人都可以指出我正确的方向吗?

最佳答案

你的代码看起来不错。在您的 self.getSubmission 函数中,返回类似

的 promise 对象
self.getSubmission = function () {

return $.getJSON('/Submission/GetSubmission',
function (data) {
self.Submission(ko.mapping.fromJSON(JSON.stringify(data)));
}
);
}

'done' 未定义,因为您没有将它与 javascript promise 对象链接起来。

关于javascript - 带有 knockout.JS 的异步 getJSON,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32395665/

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