2013-07-13 51 views
7

我有一個包含這些庫流星在哪裏定義我的收藏?

server一個非常簡單的應用程序結構 - 包含路由和ENV一些配置

client - 包含模板(<template name=".*"></template>)& JS文件對每個模板

collections

現在收藏我有文件名爲「Albums.js」,並有一個非常簡單的內容

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

現在我的客戶端文件夾內我試圖訪問這個變量Albums,我得到了一個未定義的錯誤。

我的目標是從form採取數據並將其傳遞到與var關鍵字定義collection.insert

回答

12

不要使用var,除非您希望它是該文件的專用。

專輯= new Meteor.Collection(「Albums」);

4

變量是本地的他們中定義的文件,如果你想有一個全局變量,跨文件共享,您需要在沒有var關鍵字的情況下定義它。

看起來它不是在文檔,但它在https://github.com/meteor/meteor/blob/master/History.md文件(0.6.0版本):

在JavaScript源文件的最外層聲明的變種變量是現在私有該文件。刪除var以在文件之間共享一個值。

基本上,每個JS文件都包裝在(function(){ ... })();模式中以提供此封裝。

5

定義全局變量的另一種方式是創建新文件,例如, collections.js並把它直接進入您的應用程序根目錄下(而不是任何子文件夾!)

在這個文件中,您可以定義全局變量/集(不var關鍵字)

+0

其實,你可能希望把它放在你的' lib'文件夾以確保它在大多數其他腳本之前加載。 – Domi