我正在使用 Knockout JS 和 Durandal JS。我想从一个单独的 Js 文件中查询数据库并将数据绑定到 viewModel Js 文件中。
我有一个index.js文件并包含一个 listData 作为绑定到视图(index.html)的 observableArray。在 index.js 中,我正在调用一个函数来从另一个文件中获取数据:apiCall.js。在apiCall.js 中,我调用getJson方法从数据库中获取列表。现在,我应该如何将新列表绑定到 listData observableArray?由于 Ajax 是异步工作的,因此所有其他代码都会在 getJson 调用之前执行。此外,返回不会按预期工作。
我该怎么做?如果我从同一个 viewModel 文件本身(index.js)调用 getJson 或 ajax,它可以正常工作,因为我们可以轻松推送数据。是否有一个单独的文件只用于 ajax 调用?
index.js
var activate = function () {
var self = this;
self.listData(apiCall.listData());
...}
apiCall.js
var listData = function () {
$.getJSON("/api/Clients", function (data) {
return data;
}
}