Чтобы объяснить проблему, с которой я столкнулся, у меня есть 2 маршрута: ApplicationRoute
и SomeRoute
. Мне нужно подождать ApplicationRoute
, чтобы решить до, пытаясь что-то сделать с SomeRoute
.Ждите разрешения ApplicationRoute перед тем, как отправиться на детский маршрут
Порядок вызова я вижу в отладке:
ApplicationRoute.model // which returns a promise
SomeRoute.model
SomeRoute.setupController
ApplicationRoute.setupController
Что я хочу:
ApplicationRoute.model // which returns a promise
ApplicationRoute.setupController
SomeRoute.model
SomeRoute.setupController
Там, наверное, подробно я пропускаю где-то ...
UPDATE
Причина, по которой я настаиваю на ApplicationRoute.setupController
, чтобы иметь возможность перед другими маршрутами, я использую это для инициализации некоторых других контроллеров.
App.ApplicationRoute = Ember.Route.extend({
model: function() {
return Ember.$.getJSON("api/settings");
},
setupController: function(controller, jsonSettings) {
this.store.pushPayload(jsonSettings);
this.controllerFor("foobar").set("content", this.store.all("foobar"));
this.controllerFor("foobaz").set("content", this.store.all("foobaz"));
this.controllerFor("foobam").set("content", this.store.all("foobam"));
}
});
В этом случае рассмотрите возможность вместо этого использовать логику 'setupController' в методе' afterModel'. Логически то, что вы делаете в 'setupController', не настраивает контроллер; это манипулирование и обработка модели, и поэтому по праву принадлежит одному из модельных крючков. –
Тест зеленый! Огромное спасибо. Не могли бы вы добавить свой комментарий в свой ответ, чтобы я мог его принять :) –