Самый простой способ заключается в использовании глобальной Session
объекта:
Session.setDefault('order', 1);
Template.leaderboard.helpers({
players: function() {
return Players.find({}, { sort: { score: Session.get('order'), name: 1 } });
}
});
Теперь в вашем соответствующем крючке событий вы можете переключать порядок так:
Template.leaderboard.events({
'click': function() {
Session.set('order', - Session.get('order'));
}
});
Однако, если вы предпочитаете не использовать Session
, вы также можете создать переменную реактивного состояния в пространстве имен экземпляров шаблона:
Template.leaderboard.created = function() {
this.order = new ReactiveVar(1);
}
Чтобы получить доступ к нему изнутри помощника вы можете использовать:
Template.instance().order.get()
и в вашем случае зацепить экземпляр шаблона будет второй аргумент (Efter объект события):
Template.leaderboard.events({
'click': function (e, t) {
t.order.set(- t.order.get());
}
});
Для выше кода для работы вам, вероятно, потребуется добавить reactive-var
пакет в ваше приложение метеоритов.