我正在尝试创建一个包含 SQL 数据库中所有“用户”的 dxList。请引用下面的代码。
MobileApplication.User = function (params) {
var baseAddress = 'http://localhost:8733/Design_Time_Addresses/TestService/Service/';
var users = [];
function getUsers() {
$.getJSON(baseAddress + 'users?callback=?',
function (json) {
//This return a valid Json string, and the variable "json" is basically the array.
users = json;
});
}
getUsers();
console.log("USERS ARRAY: ");
console.log(users);
var viewModel = {
listItems: users
};
return viewModel;
};
参数 json
返回一个有效的 json 数组(如果我调用 console.log(json)
,它将在浏览器控制台中返回一个数组。
我试图将此数组分配给 users
数组,但是 console.log("USERS ARRAY: ")
和 console.log( users)
返回一个空数组。
为什么它返回一个空数组? users[] 是否没有分配给从 json 构建的数组?
除此之外,我是 DevExtreme 的新手,我正在尝试将此数组应用于 dxList。请参阅下文。
<div data-options="dxView : { name: 'User', title: 'User' } ">
<div class="home-view" data-options="dxContent : { targetPlaceholder: 'content' } ">
<div data-bind="dxList: { items: listItems }">
<div data-options="dxTemplate: { name: 'item' } ">
<div data-bind="text: Name"></div>
</div>
</div>
</div>
</div>
我在这里做的事情正确吗?我在任何地方读到有关 dxList 的内容,它们要么使用本地数据(文本文件或简单数组),但我不确定如何实现这一点?
最佳答案
$.getJSON
函数异步工作,因此 console.log(users);
什么也没显示。
就您而言,我建议您使用ko.observableArray保存已加载的用户。
var users = ko.observableArray([]);
function getUsers() {
$.getJSON(baseAddress + 'users?callback=?',
function (json) {
//This return a valid Json string, and the variable "json" is basically the array.
users(JSON.parse(json));
});
}
getUsers();
var viewModel = {
listItems: users
};
这个sample展示了这种方法的实际应用。
此外,您还可以使用 the custom store对象处理远程数据。请参阅此示例 - http://jsfiddle.net/sergfry/dssa338u/1/
关于javascript - DevExtreme - 尝试从 SQL 将数组分配给 dxList,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31848888/