首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >winjs中的winjs.xhr和函数调用

winjs中的winjs.xhr和函数调用
EN

Stack Overflow用户
提问于 2013-02-26 09:08:40
回答 1查看 523关注 0票数 1

场景:我试图调用一个服务,它返回json中的结果,逻辑应该非常直接。

我在WinJS.xhr()中调用一个webservice url,添加一个然后函数来处理结果,这里我试图将它绑定到一个列表中。

我正在使用下面的,但我没有得到任何显示,我在这里做错了什么?

有人能告诉我如何从函数调用winjs.xhr()并返回在下面尝试时可以绑定的对象吗?

代码语言:javascript
复制
    function getData() {
        return WinJS.xhr({ url: "http://search.twitter.com/search.json?q=%23windows8&rpp=10" })
    }    
    function myFunc() {
        getData().then(function (xhr) {
            var jsondata = JSON.parse(xhr.responseText)
            return jsondata;
            // ...do something with the data when it arrives...
        }, function (err) {
            // ...do something with the error
        });
    }     

 var dataList = new WinJS.Binding.List(myFunc());

    //var dataList = new WinJS.Binding.List(dataArray);
    var publicMembers =
        {
            itemList: dataList
        };
    WinJS.Namespace.define("DataExample", publicMembers);
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-26 11:03:48

WinJS.Binding.List的ctor接受一个列表或数组作为列表的初始内容。您的myFunc()不会返回任何内容。可以使用以下方法设置空列表

代码语言:javascript
复制
var dataList = new WinJS.Binding.List()

然后像你现在做的那样输出它。然后,在放置在myFunc()声明下面的dataList中,只需将项添加到列表中即可。例如,假设jsondata将解析为一个数组:

代码语言:javascript
复制
function myFunc() {
    getData().then(function (xhr) {
        var jsondata = JSON.parse(xhr.responseText)
        jsondata.forEach(function(entry) { dataList.push(entry); });
    }, function (err) {
        // ...do something with the error
    });
}     

编辑:我还假设您已经将dataList.dataSource绑定到WinJS.UI.ListViewitemDataSource,并设置了匹配的itemTemplate属性或呈现函数。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15085102

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档