6

現時点では、ember-data でページネーションを実現する方法がわかりません。応答で「メタ」プロパティを返すことができ、ember-data がエラーをスローしないことがわかりました。しかし、私はそれにアクセスする方法も、このプロパティの意図された目的も知りません。

インターネット上のいくつかの例では、コレクション全体が既に ember にロードされているか、ページ数に関する情報を必要としないトリックをほとんど行わずに無限スクロールを行うと想定しています。

すべてのレコードをロードしても 1k 未満であれば問題ないと思いますが、膨大な量のデータ (Apache ログとしましょう) を扱うこともあります。じゃあ何?

つまり、基本的には、ember と ember-data を使用して最初の実際のアプリケーションを構築したいところですが、それは良い考えではないと思います。

さて、この基本的でありながら複雑な問題を解決する方法を知っている人はいますか? :)

4

1 に答える 1

1

では、開始するためのアイデアをいくつか紹介します。

まず、ルートから始めて、動的パラメーターとしてページ番号を取得する必要があります。

this.resource('posts', { path: '/posts/:page' };

次に、Silex の経験がないため、ページネーションに使用できるサーバー側のパラメーターをサポートする必要があります。たとえばoffsetlimitどこで最初にスキップするレコード数を意味し、2 番目にそこから選択するレコード数を意味します。のようなクエリ パラメータとして実装するのが理想的です?offset=0&limit=10

次に、次のようにテーブル ルートを実装します。

App.TableRoute = Ember.Route.extend({
    model: function (params) {
        return App.Post.find({ offset: (params.page - 1) * 10, limit: 10  });
    }
});

次に、いくつかの魔法を開始し、ページごとのパラメーターを作成するか、事前にすべてのレコードの数を取得してページ番号を検証できます。

于 2013-04-23T19:09:51.573 に答える