2014-02-06 2 views
0

Я видел похожие вопросы, но я думаю, что мой сценарий немного отличается. Скажем, я определяю коллекции, как это:Получить экземпляр объекта коллекции Meteor по имени

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

Я искал способ сделать это, не сохраняя никакого дополнительного кода, но, с другой стороны, я думаю, что накладные расходы на несколько дополнительных строк кода превосходят мой метод. –

Смежные вопросы