1

サイドローディングに関して、リビジョン11の残り火データへのマッピングはどうなりましたか?

次の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 Data 'store' を準備します
    App.RESTSerializer = DS.RESTSerializer.extend({
      init: 関数() {
        this._super();

        this.map('App.Ticket', {
          作成者: {embedded: 'always'},
          ticketEntries: {embedded: 'always'}
        });
      }
    });

    App.Adapter = DS.RESTAdapter.extend({
      bulkCommit: false,
      シリアライザー: App.RESTSerializer.create()
    });

    App.Store = DS.Store.extend({
      リビジョン: 11,
      アダプター: App.Adapter.create()
    });

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

于 2013-02-05T17:28:33.857 に答える