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個の1つである場合は、参照 '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 に答える