2013-07-27 40 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' –