关于sideloading的修订版11 ember-data的映射是怎么回事?
我有以下2个模型类:
WZ.Exercise = WZ.Model.extend
name: DS.attr 'string'
description: DS.attr 'string'
group: DS.belongsTo('WZ.Group', {key: 'groups'}) #I don't think the key does anything
WZ.Group = WZ.Model.extend
name: DS.attr 'string'
exercises: DS.hasMany('WZ.Exercise')
以前我在适配器上有一个映射属性,似乎不再做任何事情:
WZ.Store = DS.Store.extend
revision: 11
adapter: DS.RESTAdapter.create
bulkCommit: false
mappings:
groups: WZ.Group
sideloading代码期望sideloaded根json属性与属性名称相同:
for (var prop in json) {
if (!json.hasOwnProperty(prop)) { continue; }
if (prop === root) { continue; }
if (prop === this.configOption(type, 'meta')) { continue; }
sideloadedType = type.typeForRelationship(prop);
我不认为无论如何都要绕过这个。要么json处于代码期望的状态,要么它不起作用。
答案 0 :(得分:2)
这就是我侧载数据的方式:
DS.RESTAdapter.configure('App.Groups', {
sideloadAs: 'groups'
});
App.Store = DS.Store.extend({
revision: 11,
adapter: DS.RESTAdapter.create({})
});
答案 1 :(得分:0)
我遇到了类似的问题,并在ember_data_example项目中找到了一个解决它的映射。在我的例子中,ticketEntries:hasMany('App.TicketEntry')没有加载。
// Prepare our global Ember Data 'store' App.RESTSerializer = DS.RESTSerializer.extend({ init: function() { this._super(); this.map('App.Ticket', { creator: {embedded: 'always'}, ticketEntries: {embedded: 'always'} }); } }); App.Adapter = DS.RESTAdapter.extend({ bulkCommit: false, serializer: App.RESTSerializer.create() }); App.Store = DS.Store.extend({ revision: 11, adapter: App.Adapter.create() }); App.store = App.Store.create( );