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
$stateChangeSuccess
reload
:true
상태 또는 매개 변수가 변경되지 않은 경우에도 강제로 전환하면 동일한 상태를 다시로드합니다.
$state.go
기본 옵션으로 호출 하는 일종의 바로 가기 입니다 $state.transitionTo
.
location
:true
inherit
:true
relative
:$state.$current
notify
:true
reload
:false
synthax가 더 간단하기 때문에 더 편리합니다. 주 이름으로 만 호출 할 수 있습니다.
$state.go('home');