我目前正在构建一个Windows 8 Html / js应用程序并使用gridview模板启动,因为这样可以节省大量应用程序的大部分时间。
我已经成功地将Windows 8分屏教程(http://msdn.microsoft.com/en-us/library/windows/apps/hh974582.aspx)改编为我正在构建的应用程序。在这个应用程序中,我正在读取rss feed中的数据,就像在教程中一样。但在我的例子中,我得到了60多件物品。这很好,但我不想在我的主页上显示所有60个项目...我希望所有这些项目都显示在groupDetails页面中。
我现在做的是以下内容:在我的主屏幕中我只想要显示12个项目,所以在我的data.js文件中,在浏览所有帖子时我正在检查这个以及它是否是第一个12,它将获得参考'show',否则这是'hide'。像这样:
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://www.thesedays.com/wp-content/uploads/2013/01/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
答案 0 :(得分:1)
如果我有足够的声誉可以留下评论,我会有,因为看起来你已经有了一个有效的解决方案。但我只想提一个替代方案。您可以使用绑定列表的filtered projection,因为您已经在修改数据以标记要显示的元素。代码可能如下所示:
cPosts.createFiltered(function (item) {
return item.ref === 'show';
});