监视ui路由器状态解析中的父控制器值

问题描述 投票:0回答:1

在使用ui-router的AngularJS应用中,我有三种状态。控制器中的父状态解析一个promise,并在成功请求后执行代码。

在子状态portfolio.modal.patent中,使用$stateProviderresolve方法,我提出了另一个请求。问题是我需要使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 ....

javascript angularjs angular-ui-router
1个回答
0
投票
这里有一个快速可行的解决方法,您可以尝试使用服务作为请求之间的桥梁来解决问题

示例:

© www.soinside.com 2019 - 2024. All rights reserved.