1

我正在尝试使用meteor.js 构建一个应用程序。在lib目录中,我有一个文件 collections.js,如下所示:

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

1 回答 1

4

删除var关键字。

 


 

Meteor 中的所有 javascript 文件都嵌入在(function(){...})()模式中,因此使用var关键字定义的所有变量都是文件的本地变量。如果要创建对整个应用程序可见的全局变量,请不要使用关键字。

所以,而不是

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

应该有

Datum = new Meteor.Collection('datum'); // global
于 2013-07-27T22:12:42.913 回答