7

我有一个包含这些库的非常简单的应用程序结构

server- 包含一些用于路由和 ENV 的配置

client<template name=".*"></template>-每个模板都包含模板 ( ) 和 JS 文件

collections

现在在集合中我有一个名为“Albums.js”的文件并且有一个非常简单的内容

var Albums = new Meteor.Collection("Albums");

现在在我的客户端文件夹中,我试图访问这个变量Albums,我得到了未定义的错误。

我的目标是从中获取数据form并将其传递给collection.insert

4

3 回答 3

12

不要使用 var ,除非您希望它专用于该文件。

专辑 = new Meteor.Collection("专辑");

于 2013-07-13T11:12:51.973 回答
5

定义全局变量的另一种方法是创建新文件,例如collections.js并将其直接放入您的应用程序根文件夹(而不是任何子文件夹!)

在这个文件中你可以定义全局变量/集合(不带var关键字)

于 2013-12-18T21:58:55.853 回答
4

使用关键字定义的变量对于定义var它们的文件是本地的。如果您想要一个跨文件共享的全局变量,您需要在没有var关键字的情况下定义它。

看起来它不在文档中,但它在https://github.com/meteor/meteor/blob/master/History.md文件中(对于版本 0.6.0):

在 JavaScript 源文件的最外层用 var 声明的变量现在是该文件私有的。删除 var 以在文件之间共享值。

基本上,每个 JS 文件都包装在(function(){ ... })();模式中以提供这种封装。

于 2013-07-13T09:24:54.527 回答