2013-07-27 38 views
1

我正在尝试使用meteor.js构建一个应用程序。在lib目录中,我有一个文件collections.js看起来像:meteorjs中未捕获的引用错误

var Datum = new Meteor.Collection('datum'); 

if (Meteor.isServer && Datum.find().count() == 0) { 

var datum = [{...}] 

    _.each(datum, function(data) { 
    Datum.insert(data); 
}); 
}  

然后在我的js文件在client目录的样子:

Template.datum.helpers({ 
    datum: function() {return Datum.find(); } 
}); 

当我尝试运行应用程序,我得到Uncaught ReferenceError: Datum is not defined和一个空白页。我不能为了我的生活找出原因。任何建议或帮助?我确信我一定在做一些愚蠢的事情,但我无法弄清楚它是什么。

回答

4

删除var关键字。

 


 

流星所有的JavaScript文件嵌入到(function(){...})()模式,因此与var关键字定义的所有变量都在该文件中。如果你想创建一个全局变量,对整个应用程序是可见的,那么不要使用关键字。

所以,与其

var Datum = new Meteor.Collection('datum'); // local 

应该有

Datum = new Meteor.Collection('datum'); // global 
+0

那是流星功能或JavaScript呢?我的意思是'var'与'no var' –