[英]Meteor update template helper
如果我在流星中有這樣的設置模板助手:
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()
並且在您的事件掛鈎中,模板實例將是第二個參數(efter事件對象):
Template.leaderboard.events({
'click': function (e, t) {
t.order.set( - t.order.get() );
}
});
為了使上述代碼正常工作,您可能需要向您的流星應用程序添加reactive-var
程序包。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.