2013-04-14 59 views
2

嗨,我正在創建一個使用流星的錢借貸跟蹤網站。這是我第一次嘗試學習流星js。我試着寫在我的js下面這段代碼文件使用流星創建列表

var lists = new Meteor.Collection("Lists"); 

但是,當我回去的Chrome開發者控制檯清爽頁面後輸入

lists 
ReferenceError: lists is not defined 
get stack: function() { [native code] } 
message: "lists is not defined" 
set stack: function() { [native code] } 
__proto__: Error 

有什麼我失蹤?任何人都可以幫助我。

+3

爲什麼刷新頁面?這行代碼在哪裏找到?你剛纔說「在我的js文件中」。它在全球範圍內嗎?否則'列表'不是全局可用 – Ian

+0

我已經添加這行作爲lendLibrary.js文件的第一行。 – sreeprasad

回答

6

您無法從您的Web控制檯訪問列表,因爲code is scoped with each file。在流星您的代碼會被執行爲

function() { 
    var lists = new Meteor.Collection("Lists"); 
    .... 
} 

所以訪問,你需要改變你的線路,以全局範圍在控制檯您的收藏:

lists = new Meteor.Collection("Lists"); 

這樣lists可用於任何地方,例如作爲其他文件和webkit控制檯

+0

謝謝,我不知道。 – sreeprasad

3

那些使用本書「從meteor.js入門」,從這個例子起源....作者指示在「列表」之前使用var關鍵字,從而本地範圍的變量和導致本書說你應該看到的內容與你在瀏覽器控制檯中實際看到的內容之間的不匹配。這是本書中的錯誤,我一直無法找到本書的在線勘誤。

+1

這似乎應該是一個評論,而不是一個答案。 – Durandal

1

從書籍「Meteor.js JavaScript入門」

勘誤表類型:代碼|頁碼:第2章。反應式編程...它是活着的,|勘誤表日期:18-4-2013

在該實例中:

變種列表 =新Meteor.Collection( 「詞典」);

應該讀代替

列表 =新Meteor.Collection( 「詞典」);

的原因是,」 ......在JavaScript的一個JavaScript
源文件的最外層聲明與var變量。
作用域。變量流星0.6增加了文件級的,現在私家該文件。取出VAR在文件之間共享值
「。