2016-05-22 6 views
2

ich eine Route mit Modell Person haben:erhalten Daten von emberjs store.find

export default Ember.Route.extend({ 
    model: function(){ 
    return this.store.findAll('person'); 
    } 
}); 

Ich möchte die Daten in diesem Modell in meinem Controller ändern:

export default Ember.Controller.extend({ 
    actions:{ 
    justLog: function(){ 
     this.get('model') // ??? 
    } 
    } 
}); 

aber this.get('model'); kehrt Class {store: Class, isLoaded: true, manager: Class, isUpdating: false, __ember1463955537869: "ember357"…} und Ich kann die Daten nicht daraus machen.

+2

Das sieht richtig aus. Was hast du mit dem Modell eigentlich versucht? Denken Sie daran, dass 'store.findAll' ein Array zurückgibt. – locks

+0

Versuchen Sie etwas wie 'console.log (this.get ('model.firstObject'))' zum Spaß. –

+0

Verzeihen Sie mir, wenn ich etwas verpasse, aber sollte der Model-Hook der Route nicht lesen this.store.findAll ('person') '; und nicht 'this.store.findAll ('function');'? –

Antwort

1

Sie haben zwei Möglichkeiten, die erste:

this.get('model').forEach(function(element){ 
    element.get('propertyName'); 
}) 

Die zweite:

this.get('model').map(function(element){ 
    return element.get('propertyName'); 
}) 

Bedenken Sie, dass die Karte Funktors eine brandneue Array zurückgibt.

Um die Werte zu ändern, sollten Sie .set('propertyName', value); Funktion verwenden.