是否可以在PHP重定向中将参数传递给ui-router?

时间:2016-05-02 12:26:02

标签: php angularjs angular-ui-router

我想知道是否可以通过PHP重定向将参数传递给ui-router?

例如,我有以下状态:

    // Registration
    .state('registration', {
        url: '/registration/:valid', 
        templateUrl: '../partials/register/registration.php',
        controller: 'RegistrationController', 
        controllerAs: 'Registration', 
        params: {
            valid: null
        },
        authenticate: false, 
        data: {
            authorizedRoles: [USER_ROLES.all]
        }
    })

我试图通过PHP重定向传递参数,如下所示:

// Return success
header( 'Location: http://<...>/registration?valid=true' ); /* Redirect browser */

但它似乎没有把它拿起来。我总是得到默认值valid

然后在我的控制器中:

var self = this;
self.valid = $state.params.valid;

但我总是得到'undefined'的值(默认值)。 这有可能吗?

2 个答案:

答案 0 :(得分:0)

您有两种选择:

更改PHP

// Return success
header( 'Location: http://<...>/registration/true');
来自

Catch?参数

let params = $location.search('valid');
if (params.valid) {
    // do something
}

问候!

答案 1 :(得分:0)

如果您要在状态url

中定义参数
url: '/registration/:valid'

然后你不需要在查询字符串中指定它只是传递它的值。像这样:

header( 'Location: http://<...>/registration/true');

否则从url中删除参数,只需在params对象中定义它。

.state('registration', {
    url: '/registration/', 
    templateUrl: '../partials/register/registration.php',
    params: {
        valid: null
    },

并在php中使用原始语法

// Return success
header( 'Location: http://<...>/registration?valid=true' );