我有一个 API,它返回的 JSON 格式不适合 Ember 的使用。取而代之的是(余烬所期待的):
{ 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" }}
]}
所以如果我理解正确的话,我需要创建一个自定义的 Serializer 来修改 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);
}