Ceci est une ancienne révision du document !
Opérations CRUD
Store
Récupération du store, dans un contrôleur ou un route handler :
1 |
let store= this .get( 'store' ); |
Read : chargement d'enregistrements
1 enregistrement
Chargement d'une instance de person
1 |
let person = this .get( 'store' ).findRecord( 'person' , 1); |
Recherche d'une instance de person déjà chargée (ne retourne que si elle est déjà présente dans le store, sans effectuer de requête vers le serveur) :
1 |
let person = this .get( 'store' ).peekRecord( 'person' , 1); |
Plusieurs enregistrements
Chargement de toutes les instances de person :
1 |
let persons = this .get( 'store' ).findAll( 'person' ); |
Retour des instances de person déjà chargée dans le store :
1 |
let persons = this .get( 'store' ).peekAll( 'person' ); |
Recherche par critères
De plusieurs enregistrements
1 2 3 4 5 6 7 |
this .get( 'store' ).query( 'person' , { filter: { name: 'Peter' } }).then( function (peters) { // Do something with `peters` }); |
D'un seul enregistrement
1 2 3 4 5 6 7 |
this .get( 'store' ).queryRecord( 'person' , { filter: { id: 1234 } }).then( function (user) { // Do something with `user` }); |
Create
Toutes les opérations de modification (ajout, modification, suppression) fonctionnent en 2 étapes :
- Réalisation de la modification (appel de createRecord, deleteRecord, updateRecord…)
- Mise à jour sur le serveur (save)
Création d'une instance
1 2 3 4 |
let post = store.createRecord( 'post' , { title: 'Rails is Omakase' , body: 'Lorem ipsum' }); |
Promises
Toutes les méthodes du store interrogeant le serveur (find, findAll, query, save…) retournent une “promise” permettant d'intercepter la fin du chargement, ou les erreurs éventuelles.
1 2 3 4 5 |
let persons= this .get( 'store' ).findAll( 'person' ).then( function (datas){ //les données datas sont chargées }). catch ( function (reason){ //Erreurs de chargement }); |