1

FixtureAdapter を使用して Ember Data 1.0 Canary で Ember 1.0 を実行しています。私のルートの 1 つは、最初に入力したときにそのモデルを正しくロードしますが、それ以降はデータが空になります。そのルートは次のとおりです。

App.PlannerRoute = App.AuthenticatedRoute.extend({
  model: function() {
    var snapshotId,
        scenarioController = this.controllerFor('scenario'),
        snapshot = scenarioController.get('selectedSnapshot'),
        scenario = scenarioController.get('content');
    if ( !snapshot ) {
      if ( !scenario )
        this.transitionTo('scenarios');
      else
        this.transitionTo('scenario', scenario);
    }
    snapshotId = snapshot.get('id');
    return Ember.Object.create({
      regions: this.store.find('region', { snapshot: snapshotId }),
      networks: this.store.find('networks', { snapshot: snapshotId }),
      terminals: this.store.find('terminals', { snapshot: snapshotId })
    });
  }
});

上記のモデル メソッドの return ステートメントにブレーク ポイントを設定すると、呼び出しがthis.store.find 常に正しいデータを取得することがわかります。ただし、データは、ルートへの最初の遷移時にルートのコントローラー/ビュー/テンプレート/etc にのみ取り込まれます。

問題を追跡するための支援をいただければ幸いです。どうすればこれを修正できますか?

4

1 に答える 1

0

次のようなことを試しましたか:

...
snapshotId = snapshot.get('id');
var regions = this.store.find('region', { snapshot: snapshotId }),
    networks = this.store.find('networks', { snapshot: snapshotId }),
    terminals = this.store.find('terminals', { snapshot: snapshotId });

return Ember.RSVP.all([ regions, networks, terminals ]).then(function(results){
  return Ember.Object.create({
    regions: results[0],
    networks: results[1],
    terminals: results[2]
  });
});
于 2013-09-29T21:37:56.723 に答える