2017-05-19 7 views
1

Ich habe ein Modell in einer Route, die Daten enthält, die ich mit einem Diagramm-Plugin (ember-google-charts oder ember-charts specifics) darstellen möchte nicht auf meine Frage Rolle)So modellieren Sie Modelldaten in einem Diagramm-freundlichen Array in ember.js

in routes/server.js:

import Ember from 'ember'; 

export default Ember.Route.extend({ 
    model(params) { 
    return Ember.RSVP.hash({ 
     stats: this.store.query('stat', {filter: {serverId: params.server_id}}) 
     server: this.store.findRecord('server', params.server_id), 
    }) 
    }, 
    setupController(controller, models) { 
    controller.setProperties(models); 
    } 
} 
}); 

Mein Problem, wo/wie Statistiken in eine richtige Anordnung zu machen (timechecked und Spieler-Attribut), um unter Verwendung der Daten in eine Charting-Plugin passiert in Die Vorlage.

Ich habe etwas ähnliches versucht:

stats: this.store.query('stat', {filter: {serverId: params.server_id}}).then(items => { 
    //modify items here 

}) 

aber ich habe eine harte Zeit, herauszufinden, wie die Daten zu manipulieren und ein neues Array erstellen, ohne Fehler mit einem forEach zu werfen (die auf der glühenden Kohlen Array existiert Klasse)

Antwort

1

1.Sie können forEach verwenden, um das von Ihnen erstellte Ergebnis zu iterieren und zurückzugeben. siehe this answer für die Arbeit mit glut Modell

stats: this.store.query('stat', { filter: { serverId: params.server_id } }).then(items => { 
     //modify items here 
     let result =[]; 
     items.forEach(function(element) { 
      let value1 = element.get('propertyName'); 
      result.pushObject(value1);   
     }, this); 
     return result; 
    }) 

2. Wenn Sie einfach nur Array wollen, dann können Sie toArray method verwenden.

+1

perfekt - ich war ziemlich nah dran, aber ich habe die element.get ('propertyName') fehlt. Löschte meine Verwirrung 100% –

Verwandte Themen