2

親切にサポートが必要です。YouTube のチュートリアルに従ってページネーションを作成しました。ボタンは 2 つしかなく、次のボタンをクリックすると正常に動作しますが、前のボタンは 1 回だけ戻りますpreviousnext一度に 5 つを表示するようにページ分割されたコレクションに 20 のレコードがあるとします。次のボタンは 4 ページ目の最後に移動できますが、前のボタンは 1 つ後ろに移動しません。ページネーションを体験するにはどうすればよいですか? 前のボタンは、ユーザーがクリックしている限り、最後のページに移動すると想定されています。

ページネーション ボタンのイベント:

Template.myviews.events({
  'click .previous': function () {
    if (Session.get('skip') > 5 ) {
      Session.set('skip', Session.get('skip') - 5 );
    }
  },
  'click .next': function () {
    Session.set('skip', Session.get('skip') + 5 );
  }
});

刊行物:

Meteor.publish('userSchools', function (skipCount) {
  check(skipCount, Number);
  user = Meteor.users.findOne({ _id: this.userId });
  if(user) {
    if(user.emails[0].verified) {
      return SchoolDb.find({userId: Meteor.userId()}, {limit: 5, skip: skipCount});
    } else {
      throw new Meteor.Error('Not authorized');
      return false;
    }
  }
});

サブスクリプション:

Session.setDefault('skip', 0);
Tracker.autorun(function () {
  Meteor.subscribe('userSchools', Session.get('skip'));
});

Blaze ページネーション ボタン:

<ul class="pager">
  <li class="previous"><a href="#">Previous</a> </li>
  <li class="next"><a href="#">Next</a> </li>
</ul>

テンプレート ヘルパー:

RenderSchool: function () {
  if(Meteor.userId()) {
    if(Meteor.user().emails[0].verified) {
      return SchoolDb.find({userId: Meteor.userId()}).fetch().reverse();
    } else {
      FlowRouter.go('/');
      Bert.alert('Please verify your account to proceed', 'success', 'growl-top-right');
    }
  }
}
4

1 に答える 1