Javascript 如何在转换期间更改参数值?
在转换期间,我希望能够更改参数值。在文档中,我找到了一个访问目标状态参数的方法。在我的代码中是这样的Javascript 如何在转换期间更改参数值?,javascript,angularjs,angular-ui-router,Javascript,Angularjs,Angular Ui Router,在转换期间,我希望能够更改参数值。在文档中,我找到了一个访问目标状态参数的方法。在我的代码中是这样的 $transitions.onStart({ from: 'state3', to: 'state1' }, function ($transition$) { var params = $transition$.params('to'); if(someCondition){ params.success = true; } $transitio
$transitions.onStart({ from: 'state3', to: 'state1' }, function ($transition$) {
var params = $transition$.params('to');
if(someCondition){
params.success = true;
}
$transition$.params['to'] = params;
});
$stateProvider
.state('state1', {
url: '/',
params: {
success: false,
},
...
我的state1
定义如下
$transitions.onStart({ from: 'state3', to: 'state1' }, function ($transition$) {
var params = $transition$.params('to');
if(someCondition){
params.success = true;
}
$transition$.params['to'] = params;
});
$stateProvider
.state('state1', {
url: '/',
params: {
success: false,
},
...
但是,当我使用上面列出的代码执行转换时,我的success
参数始终具有默认值(即false
)
问题是-是否可以在转换期间更改参数值
背景:我有两个按钮,可以从state3
转换到state1
。一个我可以从$scope
控制,另一个是$scope
之外的面包屑链接。我想我可以使用这个$transitions
钩子来检查一些条件,并将success
设置为适当的值
我偶然发现了一个新参数的答案,但我发现它有点杂乱无章。我有一种感觉,它可以以更简单、更简洁的方式实现。在特定的转换过程中,我没有设法更改这些值,但当我将
onStart
更改为onSuccess
时,我就能够使用新参数进行全新的转换
$transitions.onSuccess({ from: 'state3', to: 'state1' }, function ($transition$) {
var fromParams = $transition$.params('from');
if (someCondition) {
return $state.transitionTo('state1');
}
return $state.transitionTo('state1', { success: true }, { notify: false });
});
更改为onSuccess
阻止了无限转换循环,这是在onStart
事件中调用新转换时发生的