私はあなたが次の行に沿って何かをしていると推測しています:
App.IndexRoute = Ember.Route.extend({
model: function() {
// Fetch the records of the first model
return this.store.find('post');
},
setupController: function(controller, model) {
this._super(controller, model);
this.store.find('comment').then(function(comments) {
controller.set('comments', comments)
});
}
});
ルートのフックからプロミスが返さmodel
れると、ルーターはそのプロミスが満たされるまで遷移を一時停止します。上記の場合、ルーターはリクエストが解決されるまで待機します。posts
したがって、両方のリクエストが完了するまで待機するようルーターに指示する必要があります。
と を入力Ember.RSVP.all
しEmber.RSVP.hash
ます。これらのメソッドを使用すると、複数のプロミスを 1 つにマージできます。これらは、個々のプロミスがすべて満たされたときにのみ満たされる新しいプロミスを返します。これを行う方法は次のEmber.RSVP.hash
とおりです。
App.IndexRoute = Ember.Route.extend({
model: function() {
var store = this.store;
return Ember.RSVP.hash({
posts: store.find('post'),
comments: store.find('comment')
});
},
setupController: function(controller, models) {
var posts = models.posts;
var comments = models.comments;
controller.set('content', posts);
controller.set('comments', comments);
}
});