如何使用params而不显示在url中?

时间:2016-11-28 05:47:29

标签: angularjs angular-ui-router

来自州A的控制器A

$state.go('account.accountRegister', {accountType: $stateParams.accountType, acName: acName})

在app.js中定义的状态

.state('account.accountRegister', {
    url: '/:accountType/register',
    params: {accountType, acName},
    views: {
        'mainView@':{
        templateUrl: 'app/views/registration.html',
        controller: 'registrationController'
    }
}
})
来自州B的

controllerB

console.log($stateParams.acName); // is getting undefined

如何在控制器中使用acName而不显示在状态的url部分?

1 个答案:

答案 0 :(得分:0)

我想出了一个解决方案

        .state('account.accountRegister', {
                url: '/:accountType/register',
                params: {
                    acName: {
                        value: 'defaultValue',
                        squash: false
                    }
                },
                views: {
                    'mainView@':{
                        templateUrl: 'app/views/registration.html',
                        controller: 'registrationController'
                    }
                }

        })

有关squash对象的params属性的更多信息:

https://ui-router.github.io/docs/0.3.1/#/api/ui.router.state。$ stateProvider