在使用ui-router
的AngularJS应用中,我有三种状态。控制器中的父状态解析一个promise,并在成功请求后执行代码。
在子状态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);
}],
}
}
Portfolio控制器
function portfolioCtrl() {
$scope.promise
.then(function(response) {
//WHEN PROMISIS RETURNED, THEN RESOLVE DATA IN PORTFOLIO.MODAL.PATENT
})
}
问题
从父状态控制器portfolio.modal.patent
返回了承诺后,如何解析子状态portfolioCtrl
数据>
在我的使用ui-router的AngularJS应用中,我有三种状态。控制器中的父状态解析一个promise,并在成功请求后执行代码。在子状态Portfolio.modal ....
示例: