Soi-disant, la voie officielle de le faire est d'utiliser adapter.load
, comme described in this thread:
Chargement des données
Auparavant, certaines caractéristiques du magasin, comme load()
, a pris un seul adaptateur .
Si vous voulez charger des données à partir de votre back-end sans l'application le demander (par exemple, à travers un flux de WebSockets), cette API :
store.adapterForType(App.Person).load(store, App.Person, payload);
Cette API sera également poignée transféré, et des données intégrées. Nous prévoyons d'ajouter une version plus pratique de cette API à l'avenir.
Malheureusement, il ne gère pas les données chargées en aval, contrairement à ce que prétend la documentation. Personnellement, j'utiliser quelque chose comme ce qui suit, qui est basé sur la façon dont find(ID)
est mis en œuvre:
var id = json["person"]["id"];
var store = DS.get("defaultStore");
var adapter = store.adapterForType(App.Person);
adapter.didFindRecord(store, App.Person, json, id);
var person = App.Person.find(id);
Notez que ce code suppose JSON dans le même format que find(ID)
attend de recevoir du serveur, comme documented in the RESTAdapter guide:
{
person: {
id: 1,
is_private: false,
projects: [3]
},
projects: [
{ id: 3, name: "FooReader" }
]
}
Cela s'appliquera à toutes les transformations que vous avez configurées en utilisant keyForAttributeName
(comme le mappage is_private
à isPrivate
), et il gérera les enregistrements chargés à la volée. Je ne suis pas sûr que ce soit une bonne pratique, mais ça marche plutôt bien.
Merci! J'étais proche de 'didFindRecord' mais je ne suis pas sûr de savoir exactement ce qui se passait avec cette méthode. – bschaeffer
Salut. Ce retournement fonctionne très bien pendant que je remplis un seul enregistrement. Comment puis-je remplir plusieurs enregistrements? Par exemple: http://pastebin.com/raw.php?i=NNFVDYR0 – Mattia
Et autant que je peux dire cela ne fonctionne plus dans ember-data 1.0.0-beta.3 Je l'utilisais dans ember-data 0.14 mais j'ai fini par utiliser la réponse andorov donné avec 1.0.0-beta.3: http://stackoverflow.com/a/18948134/1477165 – bfcoder