richclient:emberjs:router:models

Ceci est une ancienne révision du document !


Route Models

Une route est responsable du chargement du ou des models qui seront affichés dans le template associé.

Soit le fichier de routage suivant :

Router.map(function() {
  this.route('users');
});

Le chargement de models est réalisé dans la fonction model() (model hook) du router handler associé :

import Route from '@ember/routing/route';

export default Route.extend({
  model() {
    return this.get('store').findAll('user');
  }
});

Généralement, le model hook retourne une instance Ember Data, mais il peut également retourner un objet promise (requête asynchrone par exemple), un objet javascript ou un tableau.

import Route from '@ember/routing/route';

export default Route.extend({
  model() {
    return [
        {name: 'Higgins', age: 40},
        {name: 'Rosario', age: 20},
        {name: 'Travis', age: 30}
        ];
  }
});

La valeur retournée par le model hook de la route est ensuite affectée à la propriété model du controller (implicite ou explicite). Il est ensuite possible d'utiliser le model dans le template associé.

<h1>Utilisateurs</h1>
{{#each model as |user|}}
  <p>{{user.name}}</p>
{{/each}}

Le ou les models chargés dépendent parfois des interactions avec l'utilisateur.

  • richclient/emberjs/router/models.1516284791.txt.gz
  • Dernière modification : il y a 6 ans
  • (modification externe)