我目前正在构build一个Windows 8 Html / js应用程序,并开始使用gridview模板,因为这使我可以省去大部分应用程序的时间。
我已经成功地将Windows 8分屏教程( http://msdn.microsoft.com/en-us/library/windows/apps/hh974582.aspx )改编为我正在构build的应用程序。 在这个应用程序中,我正在读取RSS源中的数据,就像在教程中一样。 但在我的例子中,我得到了60多件物品。 这很好,但我不想在我的主页上显示所有60个项目…我希望所有这些项目都显示在groupDetails页面中。
我现在所做的是:在我的主屏幕上,我只想要12个项目dislay,所以在我的data.js文件,而通过所有的post,我检查这个,如果它是第一个12之一,它会得到一个参考'秀',否则这是'隐藏'。 喜欢这个:
for (var i = 0; i < posts.length ; i++) { var post = posts[i]; //get the title var postTitle = post.querySelector("title").textContent; //get the content var staticContent = toStaticHTML(post.querySelector("content,encoded").textContent); var ref = "show"; if (i > 11) { ref = "hide"; } //store the post info we care about cPosts.push({ group: feed, backgroundImage: "http://img.zgserver.com/javascript/LTT_220_11.jpg", key: feed.key, ref: ref, title: postTitle, content: staticContent, description: feed.description }); }
现在我不熟悉datapromises,但我可以简单地隐藏这些元素.hide()(我添加了jQuery库到我的项目),但我不知道什么时候所有的项目加载…
有人能帮我解决这个问题吗? 你可以在这里查看完整的data.js文件http://msdn.microsoft.com/en-us/library/windows/apps/jj663506.aspx
如果我有足够的声望留下评论,我会有,因为你似乎已经有一个工作的解决方案。 但我只是想提一个替代方案。 您可以使用绑定列表的过滤投影 ,因为您已经在修改数据来标记要显示的元素。 代码可能看起来像这样:
cPosts.createFiltered(function (item) { return item.ref === 'show'; });