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
事件中调用新转换时发生的