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

AngularJS에서는 때때로 우리가 사용 $state.transitionTo()하고 때로는 $state.go(). 누구든지 그들이 어떻게 다른지 그리고 언제 다른 것을 사용 해야하는지 말해 줄 수 있습니까?



답변

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()대부분의 상황에서 권장됩니다.


답변

$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');


답변