Angular ui-router에서 $ state.transitionTo ()와 $ state.go ()의 차이점


답변:


151

AngularUI 라우터 를 언급하고 있습니까? 그렇다면 위키 는 차이점을 지정합니다 .

$ state.go (to [, toParams] [, options])

전환 상태를 나타내는 Promise를 반환합니다 .

새로운 상태로 전환하기위한 편리한 방법. 내부적으로 $state.go호출 $state.transitionTo하지만 자동으로 옵션을로 설정합니다 { location: true, inherit: true, relative: $state.$current, notify: true }. 이를 통해 경로에 대한 절대 또는 상대를 쉽게 사용하고 업데이트하려는 매개 변수 만 지정할 수 있습니다 (지정되지 않은 매개 변수는 현재 상태에서 상 속됨).


$ state.transitionTo (to, toParams [, options])

전환 상태를 나타내는 Promise를 반환합니다 .

새로운 상태로 전환하기위한 저수준 방법. 내부적으로 $state.go()사용합니다 transitionTo. $state.go()대부분의 상황에서 권장됩니다.


1
제공된 링크에서 필요한 추가 정보를 찾았습니다. Brandon에게 너무 감사합니다 :)
Barcelona

1
분명히, transitionTo를 사용하여 뷰를 다시 트리거하면 뷰에 입력 된 값이 플러시되지 않습니다. 어쨌든 우리는 values ​​/ js / view를 강제로 새로 고칠 수 있습니까? PS - 페이지 다시로드 뷰와 같은 옵션은 오버레이입니다하지 않습니다
Swanidhi

10

$state.transitionTo새로운 상태로 이동합니다. 대부분의 경우 사용할 필요가 없으며$state.go .

options객체 에서 몇 가지 매개 변수를 사용 합니다.

  • location: 주소 true표시 줄의 URL이 업데이트되면 업데이트 false되지 않습니다. string "replace"인 경우 url을 업데이트하고 마지막 기록 레코드도 대체합니다.
  • inherit: true현재 URL에서 URL 매개 변수를 상속받습니다.
  • relative (stateObject, default null) : 상대 경로 (예 : '^')로 전환 할 때 상대적인 상태를 정의합니다.
  • notify:이면 이벤트 및 이벤트 true를 방송 합니다.$stateChangeStart$stateChangeSuccess
  • reload: true상태 또는 매개 변수가 변경되지 않은 경우에도 강제로 전환하면 동일한 상태를 다시로드합니다.

$state.go기본 옵션으로 호출 하는 일종의 바로 가기 입니다 $state.transitionTo.

  • location: true
  • inherit: true
  • relative: $state.$current
  • notify: true
  • reload: false

synthax가 더 간단하기 때문에 더 편리합니다. 주 이름으로 만 호출 할 수 있습니다.

$state.go('home');
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.