javascript - DevExtreme - 尝试从 SQL 将数组分配给 dxList

标签 javascript devextreme phonejs

我正在尝试创建一个包含 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/

相关文章:

javascript - clearTimeout(var) 不清除 var 超时

javascript - 如何在 Etherpad 插件中捕获点击事件

javascript - DevExtreme DataGrid onRowDblClick

javascript - DevExtreme:添加带有 base64 图标的标记

cordova - DXTREME 和 PhoneGap 之间的区别

javascript - Windows Azure + DevExpress(手机)获取待办事项列表(标准示例)

javascript - 隐藏网页 URL 直至登录成功

javascript - Angular 数据绑定(bind)不起作用

jquery - DevExpress - DevExtreme 图表高度和不透明度问题

javascript - 带类固醇 js 的电话 JS