1

特定の長さのコレクションをビューに渡すことができれば、とにかくありますか?

ページネーションを実装しようとしているため、コレクション全体を渡したくありません。

 var <new View> = new App.Views.photos({ collection: <Collection of certain length> });

これは可能ですか?特定の長さのコレクションを返す別のメソッドを追加してもかまいません。

アップデート:

同じモデルで別のコレクションを作成し、ページネーションするたびにそれをバッファーとして使用しました。これが良いアイデアかどうか教えてください。

4

1 に答える 1

1

コレクションのサブセット (「ページ」) を返すページング メソッドをコレクションに実装できます。

このようなもの(テストされていません):

var PhotoCollection = Backbone.Collection.extend({
  model:TestModel,
  getPage: function(pageNumber, pageLength) {

    pageLength = pageLength || 10;

    var first = (pageNumber - 1) * pageLength;
    var last = Math.min(pageNumber * pageLength, this.length);
    var page = [];

    if(first <= this.length) {
        for(var i=first;i<last;i++) {
            page.push(this.at(i));
        }
    }

    return new PhotoCollection(page);
  }
});

したがって、コレクションから任意の「ページ」を取得できます。

//first page using default size of 10
photos.getPage(0);

//second page with page size 25
photos.getPage(1, 25);
于 2012-12-07T12:39:10.423 に答える