场景:我试图调用一个服务,它返回json中的结果,逻辑应该非常直接。
我在WinJS.xhr()中调用一个webservice url,添加一个然后函数来处理结果,这里我试图将它绑定到一个列表中。
我正在使用下面的,但我没有得到任何显示,我在这里做错了什么?
有人能告诉我如何从函数调用winjs.xhr()并返回在下面尝试时可以绑定的对象吗?
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);发布于 2013-02-26 11:03:48
WinJS.Binding.List的ctor接受一个列表或数组作为列表的初始内容。您的myFunc()不会返回任何内容。可以使用以下方法设置空列表
var dataList = new WinJS.Binding.List()然后像你现在做的那样输出它。然后,在放置在myFunc()声明下面的dataList中,只需将项添加到列表中即可。例如,假设jsondata将解析为一个数组:
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.ListView的itemDataSource,并设置了匹配的itemTemplate属性或呈现函数。
https://stackoverflow.com/questions/15085102
复制相似问题