如何将参数发送到另一个控制器中的 GET API

How to send parameter to a GET API in another controller

我有 2 页。第 1 页是信息页。第 2 页是状态页。每个页面都有自己的控制器(infoController 和 statusController)。在第 1 页上的表单提交上,我必须调用 Post API,然后导航到第 2 页。我还需要连同它一起发送一个 ID。在第 2 页上,我必须使用此 ID 发出 GET 请求。

POST API
/information
RESPONSE
statusCode: "200"
statusMessage: string
agencyId: "ddsdsa"

GET API
/certification/view/{agencyId}

控制器页面 1

function postData() {
            var dataToSend = {
                agencyName: vm.data.agencyName,
                businessLegalName: vm.data.businessLegalName,
            };
            var postPromise = httpService.apiPostRequest ('/information', dataToSend);
            postPromise.then(function(response){
                if(response.data.statusCode == '200'){
                    $state.go ("accsetup.status");
                    Id = response.data.id;
                }
            })  
            .catch(function(error){
                console.log (error);
            });

        }

控制器第 2 页

function StatusController ($http, httpService) {    
        var vm = this;

        var promise = httpService.apiGetRequest('/certification/view/ddsdsa');
        promise.then(function(response){
            vm.data = response.data;
        })  
        .catch(function(error){
            console.log (error);
        });

    }

在您的信息页面中,您可以使用$state.go将数据发送到新视图。

if (response.data.statusCode == '200'){
    var agencyId = response.data.id; // e.g. ddsdsa
    $state.go("accsetup.status", {agencyId: agencyId});        
}

然后在您的 状态页面 中,您使用 uiRouter$stateParams 服务检索此值。

function StatusController ($http, $stateParams, httpService) {    
    var vm = this;
    var agencyId = $stateParams.agencyId; // ddsdsa
    var promise = httpService.apiGetRequest('/certification/view/' + agencyId );
    // etc
}

为此,您需要更新状态定义:

.state('accsetup.status', {
  params: {agencyId: null} // add this
})