【问题标题】:Global variable & local scope in meteor?流星中的全局变量和局部范围?
【发布时间】:2015-02-26 03:34:11
【问题描述】:

我是一个新手,写了一个简单的代码来学习 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) {

}

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

【问题讨论】:

    标签: meteor


    【解决方案1】:

    您的 secmin 变量是普通的 JS 变量,您需要一个响应式数据源,例如 Session 才能让 Meteor 魔法发生。

    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);   
        }
    });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2017-03-05
      • 2023-03-29
      • 1970-01-01
      • 1970-01-01
      • 2010-10-07
      • 1970-01-01
      • 1970-01-01
      • 2016-11-13
      相关资源
      最近更新 更多