-1

でリアクティブ変数を更新しautorunます。同じリアクティブ変数が で使用されhelperます。ただし、helper値は関数ごとに更新されませんautorun。私の以下のコードはあなたを明確に説明します。

Template.home.onCreated(function () {
  var self = this;
  self.ITEMS_INCREMENT = 2;

  self.itemsLimit = new ReactiveVar(2);


});

Template.home.onRendered(function () {
  var self = this;
  this.autorun(function(){
    if( true ){
      self.itemsLimit.set(self.itemsLimit.get()+self.ITEMS_INCREMENT);
      console.log(self.itemsLimit.get()); // set values are fine
    }
  });

});

Template.home.helpers({
testHelper: function(){
  console.log(Template.instance().itemsLimit.get()); // console returns 2 and 4 only. no more update :(
  return true;
}
});

データの取り扱いや使用方法に問題はありませんか? ヘルパーを実行可能にする方法は?

4

1 に答える 1

1

まあまあ、リアクティブ変数の値をどこで変更するのかわかりません。トラッカーで最初の計算が実行されたときに、1 つだけ変更されます。したがって、更新が表示されるのはあなただけです。使用のアイデアはReactiveVar、変更すると、ヘルパー内または自動実行内で変更されるということです。

簡単に言えば、それをテストするためにできることは次のとおりです。

Template.home.onRendered(function () {
  var self = this;
  Meteor.setInterval(function(){
      self.itemsLimit.set(self.itemsLimit.get()+self.ITEMS_INCREMENT);
    }, 500);
});
于 2015-10-10T07:50:38.390 に答える