2017-08-14 4 views
0

In meinem Router Ich habe Code let users= this.store.findAll('user')Ember Iterieren durch ein Versprechen/store.findAll Rückgabewert

Und mein Modell user.js wird name: DS.attr('string'), userName: DS.attr('string'), company: DS.attr('string')

In meiner mirage Befestigung sein Ich habe

Benutzerobjekt definiert als [{'name':'smith','userName':'smith123'},{'name':'james','userName':'james222'}

Und in meinem Router, wenn ich let users= this.store.findAll('user') tun möchte ich durch users iterieren und company manuell für jeden Benutzer hinzufügen. Aber ich bin nicht in der Lage, den Weg zu finden, um auf die Benutzerobjekte in Router js-Datei zuzugreifen.

Und dasselbe Objekt kann ich in .hbs Datei iterieren. Aber nicht in der Lage, es in Router js Datei zu iterieren. Kannst du mir bitte den Weg zeigen, dies zu tun?

+0

Haben Sie [ember Führer] lesen (https://guides.emberjs.com/v2.14.0/)? Sie decken alle Grundlagen ab. –

Antwort

0

findAll Methode (und findRecord auch) gibt ein promise, nicht iterable Objekt. Sie können Benutzer durchlaufen, nachdem das Versprechen gelöst wurde. Um dies zu tun, sollten Sie then Methode verwenden:

this.store.findAll('user') 
    .then(users => { 
    /*Iterate here*/ 
    }) 
    .catch(error => { 
    /*Do something to inform user about network/server/request error here*/ 
    });