您可以延长DS.RESTSerializer
并更改extract
和extractMany
。以下仅仅是一个副本,从我在.NET中使用串行粘贴,对于同样的情形:
window.App = Ember.Application.create();
var adapter = DS.RESTAdapter.create();
var serializer = Ember.get(adapter, 'serializer');
serializer.reopen({
extractMany: function (loader, json, type, records) {
var root = this.rootForType(type);
root = this.pluralize(root);
var objects;
if (json instanceof Array) {
objects = json;
}
else {
this.sideload(loader, type, json, root);
this.extractMeta(loader, type, json);
objects = json[root];
}
if (objects) {
var references = [];
if (records) { records = records.toArray(); }
for (var i = 0; i < objects.length; i++) {
if (records) { loader.updateId(records[i], objects[i]); }
var reference = this.extractRecordRepresentation(loader, type, objects[i]);
references.push(reference);
}
loader.populateArray(references);
}
},
extract: function (loader, json, type, record) {
if (record) loader.updateId(record, json);
this.extractRecordRepresentation(loader, type, json);
}
});
并设置你的店前,您必须配置模型能够正常侧向载荷:
serializer.configure('App.Painting', {
sideloadAs: 'paintings'
});
App.Store = DS.Store.extend({
adapter: adapter,
revision: 12
});
现在您应该可以将无根JSON负载加载到您的应用程序中。
(见fiddle)
谢谢你,这是我一直在寻找的答案。 – 2013-05-01 18:31:06