2017-05-19 2 views
1

J'ai un modèle dans un itinéraire qui contient des données que je souhaite représenter à l'aide d'un greffon de graphique (les graphiques de ember-google-charts ou de ember-charts pas d'importance à mon problème)Comment faire correspondre des données de modèle à un tableau convivial dans ember.js

dans 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); 
    } 
} 
}); 

mon problème où/comment faire des statistiques dans un tableau approprié (en utilisant timechecked et les joueurs attributs) afin de transmettre les données dans un plug-in de création de graphiques en le gabarit.

J'ai essayé quelque chose de similaire à:

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

}) 

mais j'ai du mal à comprendre comment manipuler les données et construire un nouveau tableau sans jeter les erreurs en utilisant un foreach (qui existe sur le tableau de Ember classe)

Répondre

1

1.Vous pouvez utiliser forEach pour itérer et retourner le résultat que vous avez créé. reportez-vous this answer pour le travail avec le modèle Ember

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. Si vous voulez juste simple tableau, vous pouvez utiliser toArray method.

+1

parfait - J'étais assez proche de ça mais il me manquait l'element.get ('propertyName'). Effacé ma confusion 100% –