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, defaultnull) : 상대 경로 (예 : ‘^’)로 전환 할 때 상대적인 상태를 정의합니다.notify:이면 이벤트 및 이벤트true를 방송 합니다.$stateChangeStart$stateChangeSuccessreload:true상태 또는 매개 변수가 변경되지 않은 경우에도 강제로 전환하면 동일한 상태를 다시로드합니다.
$state.go기본 옵션으로 호출 하는 일종의 바로 가기 입니다 $state.transitionTo.
location:trueinherit:truerelative:$state.$currentnotify:truereload:false
synthax가 더 간단하기 때문에 더 편리합니다. 주 이름으로 만 호출 할 수 있습니다.
$state.go('home');
