我想知道是否可以通过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
}
问候!