我有:

Template.myTemplate.helpers({
  reactiveVar: new ReactiveVar
});

如何从onCreated访问reactiveVar进行设置?
Template.restaurantEdit.onCreated(function() {
  // Access helpers.reactiveVar from here to set up
  // My goal is to set up data to reactiveVar, ex:
  helpers.reactiveVar = this.data.someData;
});

我发现其中有 protected __helpers:this.view.template.__helpers
但是,有没有 meteor 提供帮助者的好方法?或者是 meteor 从加载的data设置reactVar的方法

最佳答案

您基本上不会直接访问Meteor中的帮助程序。如果要在ReactiveVar中使用scoped reactivity,则应采用以下方式:

Template.restaurantEdit.onCreated(function() {
  //define all your reactive variables here
  this.reactiveVar = new ReactiveVar('default value');
});

Template.restaurantEdit.helpers({
  reactiveVar: function() {
    //access reactiveVar template variable from onCreated() hook
    return Template.instance().reactiveVar.get();
  }
});

Template.restaurantEdit.events({
  'click yourselector': function(evt, template) {
    template.reactiveVar.set('new value');
  }
});

在此处阅读有关范围反应性的更多信息:https://dweldon.silvrback.com/scoped-reactivity

08-07 19:24