流星在哪里定义我的收藏?

时间:2013-07-13 08:15:01

标签: meteor

我有一个非常简单的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

3 个答案:

答案 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(){ ... })();模式中以提供此封装。