はい、次の手順でこれを行うことができます。
- は、ルータクエリーにソートタイプ(ASCまたはDESC)を渡します。
- サーバーのサブスクライブソートを更新します。
- データが変更されないか、再購読によって更新されるドキュメントがほとんどないので、最も古いデータが常に最初に来るので、クライアント側のfind()メソッドのソートも更新する必要があります。
- ルーターレベルまたはテンプレートレベルのいずれかで、コレクションの購読または再購読を行うことができます。 Flow Rotuerを使用している場合は、フロールーターが反応しないため、再購読は機能しません。私はテンプレートレベルでサブスクリプションを使用することを好む。 Ironルータのクエリを使用します。ここで
コードサンプルです:あなたはそんなに
Templete.templeteName.onRendered(function(){
this.autorun(function(){
var sort = {};
if(!Router.current().params.query || Router.current().params.query.sortType == 1) {
sort.createdAt = 1;
} else {
sort.createdAt = -1;
}
//You can use this handle to show/hide loader.
var handle = Meteor.Subscribe('subscriptionName', sort);
})
})
Templete.templeteName.helpers({
'data' : function(){
var sort = {};
if(!Router.current().params.query || Router.current().params.query == 1) {
sort.createdAt = 1;
} else {
sort.createdAt = -1;
}
return collection.find({},{sort:sort});
}
});
Templete.templeteName.events({
'click .refresh' : function(){
var sortType = value //get the value -1 or 1 from html.
Router.go('routeNaem',{},{query:{sortType:sortType}})
}
});
感謝:) –