簡體   English   中英

流星更新模板助手

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM