2017-09-29 4 views
1

Comme le dit le titre, j'ai un peu de mal à comprendre ce que cet appel renvoie.
Voici comment je l'utilise:Comment utiliser un résultat Ember.getOwner (this) .lookup ('application: main')

fetchEngines() 
    { 
     let object = Ember.getOwner(this).lookup('application:main').engines; 
     console.log(object); 
    } 

Et il me retourner quelque chose comme ça: example

ce que je veux A ce moment, la liste de tous mes ember-engines.
Mais je ne sais pas comment l'utiliser. Par ce que je veux dire, comment puis-je chercher le nom de chaque moteur, ce qui est object à ce stade, je ne peux rien trouver à ce sujet. J'ai essayé la méthode forEach(), mais elle me renvoie: object.forEach is not a function. J'ai aussi essayé la méthode Object.keys, mais elle m'a retourné indéfini, peut-être que quelqu'un peut m'indiquer un doc ou quelque chose, je ne comprends pas du tout ce que c'est.
Bonne journée à vous et merci de votre lecture.

+0

Je suppose qu'il est objet vide Ember. [Regardez ici] (https://github.com/emberjs/ember.js/blob/v2.7.0/packages/ember-metal/lib/empty_object.js) pour un code plus ancien. – ykaragol

Répondre

1

Je vais répondre à cette question. C'est très simple et j'ai fait une erreur. Le travail méthode Object.keys, je ne savais pas comment l'écrire bien.

Ceci est la version corrigée:

fetchEngines() 
    { 
     let object = Ember.getOwner(this).lookup('application:main').engines; 
     // This will properly show every key in your object 
     console.log(Object.keys(object)); 
     // And if you want to enumerate it 
     let filledArray = []; 
     for (let key in object) { 
      if (object.hasOwnProperty(key)) 
       filledArray.push(key); 
     } 
     // The object filledArray is now a perfectly manipulable object 
    }