В моем приложении AngularJS с использованием ui-router
у меня есть три состояния. Родительское состояние в контроллере разрешает обещание и при успешном запросе выполняет код.
В дочернем состоянии portfolio.modal.patent
, используя $stateProvider
и метод resolve
, я делаю другой запрос. Проблема в том, что мне нужно заставить метод resolve
ждать, пока обещание не будет возвращено в родительский контроллер portfolio
.
Состояния
$stateProvider
.state('portfolio', {
url: '/portfolio',
templateUrl: 'app/templates/portfolio/portfolio.tpl.htm',
controller: 'portfolioCtrl',
controllerAs: '$ctrl',
})
.state('portfolio.modal', {
abstract: true,
views: {
"modal": {
templateUrl: "app/templates/patent/modal.html"
}
}
})
.state('portfolio.modal.patent', {
url: '/:patentId',
resolve: { //NEED TO MAKE THIS RESOLVE AFTER PORTFOLIO CONTROLLER HAS RETURNED ITS PROMISE
patent: ['$stateParams', 'patentsRestService', function($stateParams, patentsRestService) {
return patentsRestService.fetchPatentItem($stateParams.patentId);
}],
}
}
Контроллер портфеля
function portfolioCtrl() {
$scope.promise
.then(function(response) {
//WHEN PROMISIS RETURNED, THEN RESOLVE DATA IN PORTFOLIO.MODAL.PATENT
})
}
Вопрос
Как мне разрешить данные дочернего состояния portfolio.modal.patent
после того, как обещание было возвращено из родительского состояния контроллер portfolioCtrl