2017-09-25 10 views
1

私は親切にサポートが必要です。私はYouTubeのチュートリアルの後に改ページを書いています。これは、後ろに戻るときを除いてうまくいきます。 previousnextの2つのボタンしかありません。次のボタンをクリックするとうまく動作しますが、前のボタンは1回だけ後退します。一度に5を表示するようにページングされたコレクションに20レコードがあるとしたら、次のボタンは4ページ目の最後に行くことができますが、前のボタンは1ステップ前に戻ってこないでしょう。ページ分割の経験を持たせるために私は何をしていますか?前のボタンは、ユーザーがクリックしている限り、最後のページに移動すると仮定しています。改ページボタンのメテオjsカスタムページ区切り

イベント:

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')); 
}); 

ブレイズ改ページボタン

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

テンプレートヘルパー:あなたは6枚の書類を持って

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'); 
    } 
    } 
} 
+0

はあなたにも、テンプレートとヘルパーを示してもらえますか? – Styx

+0

THanks、Styx、私はコードを更新し、ヘルパーを追加しました。 – kehinde

+0

あなたのコレクションにはいくつのアイテムがありますか? – Styx

答えて

1

は、ページあたり2つのドキュメント、全部で3ページで合計します。ハンドラは、最初のページに行くからあなたを防ぐpreviousボタンクリックで

あなたif条件:2ページ目については

if (Session.get('skip') > 2 /* testing */) { 
    ... 
} 

skip2を等しくなりますし、次のクリックで、この条件はfalseになり、戻ってから防ぎます。

3番目のページにいるときは、2番目に進むことができます。ボタンは1回だけ動作するという印象を与えます。

それはこのようにする必要があります:

if (Session.get('skip') > 0) { 
    ... 
} 
+0

THanks Styx。私はあなたのプロの貢献に非常に感謝します。あなたの答えに私はこの 'Session.get( 'skip')> 0 ||を追加しました。 Session.get( 'スキップ')> 2 '。今は完璧に動作しています。 – kehinde

+1

@kehindeこの追加は意味をなさない。 'skip> 0'の場合、条件の2番目の部分は評価されません。 – Styx

+0

はい。本当に。私はあなたの提案に戻りました。 – kehinde