无法从客户端访问流星lib帮助程序

时间:2014-06-11 08:06:11

标签: meteor

我试图了解meteorjs并提出一些问题。

我想创建一个getDateTime帮助程序,并希望这个帮助程序在客户端和服务器上可用。

然后我在lib / helpers中插入了这段代码

function getDateTime() {
    var now     = new Date();
    var year    = now.getFullYear();
    var month   = now.getMonth()+1;
    var day     = now.getDate();
    var hour    = now.getHours();
    var minute  = now.getMinutes();
    var second  = now.getSeconds();
    if(month.toString().length == 1) {
        var month = '0'+month;
    }
    if(day.toString().length == 1) {
        var day = '0'+day;
    }
    if(hour.toString().length == 1) {
        var hour = '0'+hour;
    }
    if(minute.toString().length == 1) {
        var minute = '0'+minute;
    }
    if(second.toString().length == 1) {
        var second = '0'+second;
    }
    var dateTime = year+'/'+month+'/'+day+' '+hour+':'+minute+':'+second;
    return dateTime;
}

不幸的是,此功能在客户端上不可用("未定义")。

当我查看源代码时,我可以看到它,但它封装在:

(function(){};

我不太明白为什么会这样。

我该怎么做才能访问该功能?

1 个答案:

答案 0 :(得分:1)

Meteor应用程序中的每个.js文件都包含在一个立即调用的函数表达式(function () { ... })()中,以防止局部变量混乱全局范围。要在其他文件中访问该功能,请按以下方式定义:

// note: no "var"
getDateTime = function () {
  // ...
};