2017-05-17 2 views
0

J'ai deux points d'intérêt d'intérêt: /messages -> pour obtenir tous les postes /messages/{post_id}/commentaires -> pour obtenir tous les commentaires pour un posteEmber Données: Chargement des commentaires pour un poste d'extrémité séparée

Je souhaite avoir un attribut comments sur le modèle de message, rempli de commentaires du point de terminaison des commentaires. Comment puis-je charger des commentaires dans les messages? J'utilise DS.JSONSerializer.

Merci!

Répondre

1

Donnez votre modèle une hasMany propriété:

import Model from 'ember-data/model'; 
import { hasMany } from 'ember-data/relationships'; 

export default Model.extend({ 
    comments: hasMany('comment'); 
}); 

Et mis dans votre Post charge utile les commentaires relation comme related link:

data: { 
    attributes: {} 
    id: 'your-post-id', 
    relationships: { 
     comments: { 
      links: { 
       related: 'posts/your-post-id/comments' 
      } 
     } 
    } 
} 

Dès que vous ciblez les commentaires, données Ember fera un appel à votre lien associé. E.g:

{{#each post.comments as |comment|}} 
    {{comment.propertyX}} 
{{/each}} 
+0

J'ai peu de contrôle sur l'API, et il n'est pas conforme à la spécification JSONAPI. –

+1

Ensuite, vous devez écrire des sérialiseurs personnalisés pour modifier la charge utile du backend à la spécification JSONAPI. Lisez cet article en entier: https://guides.emberjs.com/v2.13.0/models/customizing-serializers/ –