2014-02-06 41 views
0

我看過類似的問題,但我認爲我的情況有點不同。說我這樣定義的集合:按名稱獲取流星彙集對象實例

MyCol = new Meteor.Collection("myCol" 

,我想爲「MyCol」使用字符串參考「myCol」 - 我已經創建了功能似乎低於工作:

function GetCollectionObject(name) { 
    for(var key in window) { 
     var value = window[key]; 
     if (value instanceof Meteor.Collection) { 
      if (value._name == name) { 
       return value; 
        break; 
      } 
     } 
    } 
    return null;  
} 

這是唯一/最好/最有效的方法嗎?

回答

1

爲什麼你不把它們存儲在字典中?這是方式更有效率。

Dogs = new Meteor.Collection('dogs'); 
Cats = new Meteor.Collection('cats'); 
Alpacas = new Meteor.Collection('alpacas'); 

MyCollections = { 
    dogs: Dogs, 
    cats: Cats, 
    alpacas: Alpacas, 
}; 

... 

MyCollections['dogs'].doSomething(); 
+0

我正在尋找一種方法來做到這一點,沒有維護任何額外的代碼,但第二想到我認爲額外的代碼行開銷我的方法的開銷。 –