0
如果我有像這樣的流星設置模板助手:流星更新模板幫手
Template.leaderboard.helpers({
players: function() {
return Players.find({}, { sort: { score: -1, name: 1 } });
});
我怎樣才能更改訂閱的事件(比如點擊)之後。例如,如何在點擊事件後反轉排序?
如果我有像這樣的流星設置模板助手:流星更新模板幫手
Template.leaderboard.helpers({
players: function() {
return Players.find({}, { sort: { score: -1, name: 1 } });
});
我怎樣才能更改訂閱的事件(比如點擊)之後。例如,如何在點擊事件後反轉排序?
最簡單的方法是使用全球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()
,並在事件掛鉤的模板實例將成爲第二個參數(至關重大的事件對象):
Template.leaderboard.events({
'click': function (e, t) {
t.order.set(- t.order.get());
}
});
對於上述代碼工作你可能需要添加reactive-var
包到你的流星應用程序。