1

私は Ember RC2 を使用しており、Ember-Data 12 には次の関係があります (簡略化)。

App.GlobalData = DS.Model.extend({
    lat: DS.attr('number'),
    lon: DS.attr('number'),
});

App.System = DS.Model.extend({
    title: DS.attr('string'),

    data: DS.belongsTo('App.GlobalData'),   
});

私の(システム)ビューでは、次のように子のデータにアクセスしたいと考えています。{{ data.lat }}

Ember (現在は FixtureAdapter を使用していますが、将来的には RESTadapter でも機能させたいと考えています) は、子要素のデータを自動的に読み込まないようです。{{ data.id }}(App.GlobalData.FIXTURES で指定された) id の値を返しましたが、返さ{{ data.lat }}れましたundefined

アレイコントローラーを作成することで、この問題をある程度回避しました。

App.GlobalDatasController = Ember.ArrayController.extend({});
App.globalDatasController = App.GlobalDatasController.create({});

ApplicationRoute にすべての GlobalData をプリロードする

App.ApplicationRoute = Ember.Route.extend({
  setupController: function() {
      App.globalDatasController.set('content', App.GlobalData.find());
  }
});

ただし、必要な GlobalData が 1 つしかない場合でも、すべてのGlobalDataをロードする必要があるため、これは良い解決策とは思えません。

これを処理する方法に関するベスト プラクティスがあると確信していますが、最善の調査努力にもかかわらず、それを見つけることができませんでした。

私の質問を要約すると:

  1. 子データを親と共にロードするように ember に指示する方法と場所は? (サイドロードせずに)
  2. サイドローディングが唯一のオプションである場合、FixtureAdapter でそれをどのように実装しますか?

ありがとう!

4

1 に答える 1

0

問題が見つかりました。FIXTURES で、ID を文字列ではなく整数として指定しました。なぜそれが違いを生むのかわかりませんが、それを変更するとうまくいきました。

于 2013-04-17T15:17:29.687 に答える