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

时间:2017-05-05 02:43:47

标签: angularjs angular-ui-router angular-promise

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

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

GET API
/certification/view/{agencyId}

Controller Page1

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);
            });

        }

Controller Page2

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);
        });

    }

1 个答案:

答案 0 :(得分:1)

信息页面中,您可以使用Invoke-Command -ComputerName mycomputer -Credential $Creds -ScriptBlock { Trace-Command CommandDiscovery {get-process;write-host 'deh'} -PSHost } 将数据发送到新视图。

$state.go

然后在状态页面中,使用uiRouterif (response.data.statusCode == '200'){ var agencyId = response.data.id; // e.g. ddsdsa $state.go("accsetup.status", {agencyId: agencyId}); } 服务检索此值。

$stateParams

为此,您需要更新州定义:

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