Emberが使用できるように適切にフォーマットされていないJSONを返すAPIがあります。これの代わりに(残り火が期待しているもの):
{ events: [
{ id: 1, title: "Event 1", description: "Learn Ember" },
{ id: 2, title: "Event 2", description: "Learn Ember 2" }
]}
私は得る:
{ events: [
{ event: { id: 1, "Event 1", description: "Learn Ember" }},
{ event: { id: 2, "Event 2", description: "Learn Ember 2" }}
]}
したがって、正しく理解できれば、JSONを変更するためのカスタムシリアライザーを作成する必要があります。
var store = DS.Store.create({
adapter: DS.RESTAdapter.create({
serializer: DS.Serializer.create({
// which hook should I override??
})
})
});
DS.Serializerに関連するコードコメントを読みましたが、目的を達成する方法がわかりません...
どうすればいいですか?
ps:私の目標はApp.Event.find()
仕事をすることです。現在、取得していUncaught Error: assertion failed: Your server returned a hash with the key 0 but you have no mapping for it
ます。そのため、受け取ったJSONを修正する必要があります。
編集:今のところ、これが私がそれを機能させた方法です:
extractMany: function(loader, json, type, records) {
var root = this.rootForType(type),
roots = this.pluralize(root);
json = reformatJSON(root, roots, json);
this._super(loader, json, type, records);
}