全局变量&流星的局部范围?

时间:2015-02-26 03:34:11

标签: meteor

我是一个新手,写了一个简单的代码来学习Meteor中全局和局部范围的基本概念。代码如下:

    var sec=0;
    var min=0;

    console.log("Hello World")

    if (Meteor.isClient) {

    Template.Output.helpers({
        'secs':function(){  
            return sec;
        },
        'mins':function(){  
            return min;
        }
    });

    Template.Input.events({
        'submit form': function(event){

          event.preventDefault();
          min = event.target.minutes.value;
          sec = min * 60;
          console.log(min);
          console.log(sec);   
        }
    });

    }

if (Meteor.isServer) {

}

当我运行meteor时它将显示0分0秒,但是当我输入一些值并按下提交按钮时,即使我已将min和sec声明为全局变量,该值也不会改变。

1 个答案:

答案 0 :(得分:1)

您的secmin变量是普通的JS变量,您需要一个反应数据源,例如Session,以便发生流星魔法。

Session.set("sec",0);
Session.set("min",0);

Template.Output.helpers({
    'secs':function(){  
        return Session.get("sec");
    },
    'mins':function(){  
        return Session.get("min");
    }
});

Template.Input.events({
    'submit form': function(event){

      event.preventDefault();
      var min=event.target.minutes.value;
      var sec=min*60;
      Session.set("min",min);
      Session.set("sec",sec);
      console.log(min);
      console.log(sec);   
    }
});