Meteor 将 Reactive Var 定义为可在 .events 和 .helpers 中访问

标签 meteor

我正在尝试定义一个新的 ReactiveVar 变量,以便在所有模板部分(例如 .events、.helpers、.rendered ...等)中访问,如下面的代码所示,但我总是收到错误消息:

Error: Exception in template helper:
ReferenceError: logData is not defined

有人可以告诉我我在这里缺少什么/做错了什么吗?谢谢

代码:

  Template.detailedreport.rendered = function() {

       var logData = new ReactiveVar;
       logData.set([]);
  };


  Template.detailedreport.helpers({
      myCollection: function () {
        return logData.get();
      }
  });

  Template.detailedreport.events({
     'submit form': function(e) {
        e.preventDefault();
        var now  = Session.get("startDate");
        var then = Session.get("endDate");
        var custID = Session.get("customer");
        var projID = Session.get("project");
        Meteor.call('logSummary', now, then, projID, custID, function(error, data){
          if(error)
            return alert(error.reason);

          logData.set(data);
        });
     }  
  });

最佳答案

您需要像这样在模板实例上定义 ReactiveVar :

Template.detailedreport.created = function() {
  this.logData = new ReactiveVar([]);
};

然后你就可以像这样在助手中访问它了:

Template.detailedreport.helpers({
  myCollection: function () {
    return Template.instance().logData.get();
  }
});

在事件中你可以使用模板参数:

Template.detailedreport.events({
  'submit form': function(e, template) {
    e.preventDefault();
    var now  = Session.get("startDate");
    var then = Session.get("endDate");
    var custID = Session.get("customer");
    var projID = Session.get("project");
    Meteor.call('logSummary', now, then, projID, custID, function(error, data){
      if(error){
        return alert(error.reason);
      }
      template.logData.set(data);
    });
  }  
});

关于Meteor 将 Reactive Var 定义为可在 .events 和 .helpers 中访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27611696/

相关文章:

css - 使用 Meteor 和 Reactjs 控制加载哪些 CSS

meteor - 为什么 meteor 只返回一个空文件?

javascript - 从 mongo 返回的对象中过滤/返回单个嵌套对象(findOne)

cordova - 如何检测离线的Meteor Cordova应用程序,然后使用GroundDB临时存储数据,直到恢复在线状态?

javascript - 更新到 0.7.1.1 后 meteor 中断无法调用未定义的方法 'split'

javascript - Node.js 使用 mssql 访问数据库

javascript - 如何在 Meteor 本地对包进行轻微修改?

javascript - 防止重复插入文档

javascript - 删除 Meteor 中非登录用户的加载模板

javascript - 运行Meteor Up如何选择设置文件