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
包到你的流星应用程序。