是否可以在PHP重定向中将参数传递给ui路由器


Is it possible to pass parameters to ui-router within a PHP redirect?

我想知道是否可以通过PHP重定向将参数传递到ui路由器?

例如,我有以下状态:

    // 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"(默认值)的值。这有可能吗?

如果您在状态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' );

您有两个选项:

更改PHP

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

接球?URL中的参数

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

问候!