1

この回答に従って、emberjs に遅延読み込みを実装しようとしています: https://stackoverflow.com/a/11925918/341358。しかし、ember が最初のデータセットをロードするときに行き詰まります。/newsitems何らかの理由で、最初の ajax 呼び出しは、最初のページのみではなく、呼び出し続けます: /newsitems?page=1。それ以降、loadmore 機能はうまく機能し、ページ 2、3、4、... の限られたデータ セットが返されます。

だから私の質問は、最初のページのアイテムだけが読み込まれ、すべてが一度に読み込まれないようにするにはどうすればよいですか?

私のルートは次のようになります。

App.NewsitemsRoute = Ember.Route.extend({
  model: function() {
    return App.Newsitem.find();
  }
});

これが私のコントローラーです:

App.NewsitemsController = Ember.ArrayController.extend({
  currentPage: 1,

  canLoadMore: function() {
    return this.get('currentPage') < 10;
  }.property('currentPage'),

  loadMore: function() {
    if (this.get('canLoadMore')) {
      this.set('isLoading', true);
      var page = this.incrementProperty('currentPage');

      this.get('store').findQuery(App.Newsitem, {page:page});
    }
    else
    {
      this.set('isLoading', false);
    }
  }
});
4

1 に答える 1

1

デフォルトのページ番号を含むようにルートを変更できます1か?

例えば

App.NewsitemsRoute = Ember.Route.extend({
  model: function() {
    var controller = this.controllerFor('Newsitems');
    return App.Newsitem.find({page: controller.get('currentPage')});
  }
});

編集:コントローラーからページ番号を取得するとどうなりますか?

于 2013-03-06T19:54:04.090 に答える