2016-12-06 1 views
1

전환하는 동안 params 값을 변경하고 싶습니다. 문서에서 대상 상태에 액세스하는 방법을 발견했습니다. 매개 변수 using params('to') method. 내가 전환을 수행 할 때이전환 중에 매개 변수 값을 변경하는 방법은 무엇입니까?

$transitions.onStart({ from: 'state3', to: 'state1' }, function ($transition$) { 
    var params = $transition$.params('to'); 
    if(someCondition){ 
     params.success = true; 
    } 
    $transition$.params['to'] = params; 
}); 

state1 정의는 위에 나열된 코드로, 그러나이

$stateProvider 
    .state('state1', { 
     url: '/', 
     params: { 
      success: false, 
     }, 
     ... 

모양처럼 내 코드에서 보이는, 내 success 매개 변수는 항상 false입니다 기본 값을 (이).

질문 - 전환하는 동안 매개 변수의 값을 변경할 수 있습니까?

배경 : state3에서 state1으로 전환 할 수있는 두 개의 버튼이 있습니다. 하나는 내가 $scope에서 제어 할 수 있지만 다른 하나는 $scope 외부의 이동 경로 링크입니다. 이 $transitions 후크를 사용하여 일부 조건을 확인하고 success을 적절한 값으로 설정할 수 있다고 생각했습니다.

나는 새로운 매개 변수로 대답 suggesting performing whole new $state.go를 우연히 발견했지만, 좀 지저분하고 해킹 된 것으로 나타났습니다. 나는 그것이 더 간단하고 깨끗한 방법으로 달성 될 수 있다는 느낌을 가지고있다.

답변

0

내가 특정 전환시 그 값을 변경 관리하지 않은,하지만 난 onSuccessonStart을 변경할 때 무한 전환 방지 단순히 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 }); 
}); 

와 새로운 전환을 할 수 있었다 루프, onStart 이벤트에서 새로운 전환을 호출 할 때 발생했습니다.

관련 문제