在我的主要js文件中,我定義了一個「新的Meteor.Collection(」Decks「)」,如果沒有數據,我填充一些數據。如何從Meteorjs中的多個文件訪問集合?
現在我有一個在模板事件的JavaScript客戶端文件夾中的意見文件夾。每個模板都有它自己的js文件。這些事件需要查詢和更新Decks集合,但我不知道我會如何做到這一點。我嘗試在事件代碼中編寫一個「新的Meteor.Collection(」Decks「)」,但是我收到了一個集合已經存在的錯誤。
我可以想象使用requirejs將一個全局變量傳遞給這些事件,但我覺得必須有一種本地方式來在Meteor中完成它。
如何訪問不同文件中的相同集合?
舉個例子,我的應用程序被稱爲「建設者」,因此主要JS被稱爲「builder.js」,包含:
var Decks = new Meteor.Collection("Decks");
然後,我有另一個JavaScript文件名爲「do_other_stuff.js」客戶端文件夾,它要查詢甲板集合,所以像:
var first_deck = Decks.findOne({name: "first"});
但很明顯,這是行不通的,因爲甲板是不是一個全局變量。
噢,我想,因爲窗口對象是不可訪問的,我不能訪問全局變量,但在嘗試之後,我發現它們仍然可以訪問,您只是不使用窗口對象來訪問它們。非常可怕的做到這一點,所以我將不得不過渡到更好的方式,如需要... 我不知道...我覺得流星應該有這個東西,所以人們不必使用requirejs來保持他們的代碼乾淨。 我打算再等一天再找一個更好的答案,如果我沒有得到答案,請將其標記爲正確。你肯定給了我一個工作答案:)。謝謝。 –
不要害怕,這是如何做到的!這一點不會導致你的代碼混亂,而試圖與流星使用require.js可以! (我已經看到了,這太糟糕了。)另外,window對象是完全可訪問的。只要確保你不要嘗試在服務器端使用它。 –