3

我目前正在构建一个 Windows 8 Html/js 应用程序,并从 gridview 模板开始,因为这让我节省了大量时间来设计大多数应用程序。

我已经成功地将 Windows 8 分屏教程 ( http://msdn.microsoft.com/en-us/library/windows/apps/hh974582.aspx ) 改编为我正在构建的应用程序。在这个应用程序中,我正在从 rss 提要中读取数据,就像在教程中一样。但在我的例子中,我得到了 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

4

1 回答 1

1

如果我有足够的声誉来发表评论,我会留下评论,因为您似乎已经有了一个可行的解决方案。但我只想提一个替代方案。您可以使用绑定列表的过滤投影,因为您已经在修改数据以标记要显示的元素。代码可能如下所示:

cPosts.createFiltered(function (item) {
    return item.ref === 'show';
});
于 2013-03-19T00:03:06.383 回答