1

关于侧载,到修订版 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

侧载代码期望侧载的根 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 处于代码预期的状态,要么它将不起作用。

4

2 回答 2

2

这就是我侧载数据的方式:

DS.RESTAdapter.configure('App.Groups', {
    sideloadAs: 'groups'
});

App.Store = DS.Store.extend({   
    revision: 11,
    adapter: DS.RESTAdapter.create({})   
});
于 2013-02-13T20:34:23.423 回答
0

我遇到了类似的问题,并在 ember_data_example 项目中找到了为我解决的映射。就我而言,ticketEntries: hasMany('App.TicketEntry') 没有加载。

    // 准备我们的全局 Ember 数据“存储”
    App.RESTSerializer = DS.RESTSerializer.extend({
      初始化:函数(){
        this._super();

        this.map('App.Ticket', {
          创建者:{嵌入:'always'},
          ticketEntries:{嵌入:'always'}
        });
      }
    });

    App.Adapter = DS.RESTAdapter.extend({
      批量提交:假,
      序列化器:App.RESTSerializer.create()
    });

    App.Store = DS.Store.extend({
      修订:11,
      适配器:App.Adapter.create()
    });

    App.store = App.Store.create(
    );

于 2013-02-05T17:28:33.857 回答