我正在尝试使用meteor.js构建一个应用程序。在lib
目录中,我有一个类似于:
var Datum = new Meteor.Collection('datum');
if (Meteor.isServer && Datum.find().count() == 0) {
var datum = [{...}]
_.each(datum, function(data) {
Datum.insert(data);
});
}
然后在client
目录中的.js文件中显示:
Template.datum.helpers({
datum: function() {return Datum.find(); }
});
当我尝试运行该应用时,我得到Uncaught ReferenceError: Datum is not defined
和一个空白页面。我不能为我的生活弄清楚为什么会这样。有什么建议或帮助吗?我敢肯定,我必须做一些愚蠢的事情,但我无法弄清楚它是什么。
答案 0 :(得分:4)
删除var
关键字。
Meteor中的所有javascript文件都嵌入在(function(){...})()
模式中,因此使用var
关键字定义的所有变量都是文件的本地变量。如果要创建一个对整个应用程序可见的全局变量,请不要使用关键字。
所以,而不是
var Datum = new Meteor.Collection('datum'); // local
应该有
Datum = new Meteor.Collection('datum'); // global