そのため、ルートを使用して 2 つのバックエンド API 呼び出しの状態を保持しています。私が基本的にやろうとしていることは次のとおりです。
App.EnvironmentRoute = Ember.Route.extend({
model: function(params) {
return this.store.find('schedule', params.environment_id);
},
setupController: function(controller, model) {
this.controllerFor('schedule').set('content', model);
},
renderTemplate: function() {
this.render('schedule');
},
});
App.ScheduleController = Ember.ArrayController.extend({});
これはモデルを 1 つだけロードした例ですが、最終的にやりたいことは次のとおりです。
App.EnvironmentRoute = Ember.Route.extend({
model: function(params) {
return Ember.RSVP.hash(
schedule: this.store.find('schedule', params.environment_id),
other: this.store.find('other', params.environment_id)
}
},
setupController: function(controller, models) {
this.controllerFor('schedule').set('content', models.schedule);
this.controllerFor('other').set('content', models.other);
},
(スケジュール - モデルの配列); 最終的に達成したいのは、異なるコントローラーへの 2 つのバックエンド呼び出しを異なるビュー/テンプレートに委任することです。私が現在抱えている問題は、Chrome インスペクタでバックエンド呼び出しが行われ、データが適切に返されていることを確認できても、Ember.js がそれを適切にロードしたり、ScheduleController に設定したりしていないように見えることです。価値があるのは、データがモデルに読み込まれるかどうかさえわかりません。Route.model() メソッドが約束を返すため、それを確認する方法もわかりません。
私は ember 1.0.0 と ember-data 1.0.0-beta3.2 を使用しています