Windows 8移动应用程序 – 获取在线数据并显示javascript

前端之家收集整理的这篇文章主要介绍了Windows 8移动应用程序 – 获取在线数据并显示javascript前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我是 Windows 8移动应用程序开发的新手.

我在Javascript / HTML5中自定义“网格应用程序”并尝试修改data.js以获取数据并填充“SampleDate”数组.

从Web订阅获取数据已完成,但问题是请求是异步执行而不等待响应.

数组总是变空,但是当我尝试将数组数据记录到控制台时,它会在获取后正确记录.

请给我一个解决方案,以便我可以填充和查看获取的数据.

这就是我改变默认的generateSampleData()方法方法;

WinJS.xhr({ url: "http://www.yamu.lk/Feed/" })
       .done(function complete(result) {

           console.log(result.responseXML);
           var items = result.responseXML.querySelectorAll("item");
           for (var n = 0; n < items.length; n++) {
               sampleItems[n] = { group: sampleGroups[0],title: items[n].querySelector("title").textContent,subtitle: "Item Subtitle: 1",description: items[n].querySelector("description").textContent,content: itemContent,backgroundImage: lightGray };
               console.log(items[n].querySelector("title").textContent);

           }


           },function error(error) {

           },function progress(result) {

           });

        return sampleItems;

解决方法

你的问题源于你的ListView没有直接绑定到sampleItems数组,它被绑定到一个绑定了listItems的绑定列表.查看data.js的第12行:

generateSampleData().forEach(function (item) {
    list.push(item);
});

您要做的是等待将数据推送到绑定列表,直到从Web服务检索到它为止.一种方法是让generateSampleData()函数返回WinJS.xhr promise而不是sampleItems数组.所以generateSampleData()变成:

return WinJS.xhr({ url: "http://www.yamu.lk/Feed/" });

和第12行成为:

generateSampleData().done(function complete(result) {
       console.log(result.responseXML);
       var items = result.responseXML.querySelectorAll("item");
       for (var n = 0; n < items.length; n++) {
           list.push({ group: sampleGroups[0],backgroundImage: lightGray });
           console.log(items[n].querySelector("title").textContent);
       }});

或类似的规定.

绝对查看binding lists如何工作以获取更多信息.

猜你在找的Windows相关文章