No AngularJS, vejo que às vezes usamos $state.transitionTo()
e às vezes usamos $state.go()
. Alguém pode me dizer como eles diferem e quando um deve ser usado em vez do outro?
No AngularJS, vejo que às vezes usamos $state.transitionTo()
e às vezes usamos $state.go()
. Alguém pode me dizer como eles diferem e quando um deve ser usado em vez do outro?
Você está se referindo ao Roteador AngularUI ? Nesse caso, o wiki especifica as diferenças :
$ state.go (to [, toParams] [, options])
Retorna uma promessa que representa o estado da transição.
Método de conveniência para a transição para um novo estado.
$state.go
chama$state.transitionTo
internamente, mas define automaticamente as opções para{ location: true, inherit: true, relative: $state.$current, notify: true }
. Isso permite que você use facilmente um caminho absoluto ou relativo para especificar apenas os parâmetros que deseja atualizar (enquanto permite que parâmetros não especificados sejam herdados do estado atual).
$ state.transitionTo (to, toParams [, options])
Retorna uma promessa que representa o estado da transição.
Método de baixo nível para fazer a transição para um novo estado.
$state.go()
usatransitionTo
internamente.$state.go()
é recomendado na maioria das situações.
$state.transitionTo
transite para um novo estado. Na maioria dos casos, você não precisa usá-lo, pode preferir$state.go
.Leva alguns parâmetros em um
options
objeto:location
: Setrue
atualizará o url na barra de localização, sefalse
não. Se for string"replace"
, irá atualizar o url e também substituir o último registro do histórico.inherit
: Setrue
irá herdar os parâmetros de url do url atual.relative
(stateObject, padrãonull
) : Ao fazer a transição com caminho relativo (por exemplo, '^'), define de qual estado será relativo.notify
: Setrue
, vai transmitir$stateChangeStart
e$stateChangeSuccess
eventos.reload
: Setrue
forçará a transição mesmo que o estado ou os parâmetros não tenham mudado, também conhecido como uma recarga do mesmo estado.$state.go
é uma espécie de atalho que chama$state.transitionTo
com opções padrão:location
:true
inherit
:true
relative
:$state.$current
notify
:true
reload
:false
É mais conveniente porque a sintaxe é mais simples. Você pode chamá-lo apenas com um nome de estado.
fonte