我有一个非常简单的app结构,包含那些libs
server
- 包含一些路由配置和ENV
client
- 包含模板(<template name=".*"></template>
)&amp;每个模板的JS文件
collections
现在在集合中我有一个名为&#34; Albums.js&#34;并且内容非常简单
var Albums = new Meteor.Collection("Albums");
现在在我的客户端文件夹中,我试图访问此变量Albums
,并且我收到了未定义的错误。
我的目标是从form
获取数据并将其传递给collection.insert
答案 0 :(得分:12)
除非您希望将其专用于该文件,否则请勿使用var。
专辑=新的Meteor.Collection(&#34;专辑&#34;);
答案 1 :(得分:5)
定义全局变量的另一种方法是创建新文件,例如collections.js
并将其直接放入您的应用根文件夹(而不是任何子文件夹!)
在此文件中您可以定义全局变量/集合(不含var
关键字)
答案 2 :(得分:4)
使用var
关键字定义的变量对于它们所定义的文件是本地的。如果需要跨文件共享的全局变量,则需要在不使用var
关键字的情况下对其进行定义。
看起来它不在文档中,但它在https://github.com/meteor/meteor/blob/master/History.md文件中(对于版本0.6.0):
在JavaScript源文件的最外层使用var声明的变量现在对该文件是私有的。删除var以在文件之间共享值。
基本上,每个JS文件都包含在(function(){ ... })();
模式中以提供此封装。