In AngularJS, vedo che a volte usiamo $state.transitionTo()
ea volte usiamo $state.go()
. Qualcuno può dirmi in cosa differiscono e quando uno dovrebbe essere usato rispetto all'altro?
In AngularJS, vedo che a volte usiamo $state.transitionTo()
ea volte usiamo $state.go()
. Qualcuno può dirmi in cosa differiscono e quando uno dovrebbe essere usato rispetto all'altro?
Risposte:
Ti riferisci al router AngularUI ? In tal caso, il wiki specifica le differenze :
$ state.go (a [, toParams] [, opzioni])
Restituisce una promessa che rappresenta lo stato della transizione.
Metodo pratico per la transizione a un nuovo stato.
$state.go
chiama$state.transitionTo
internamente ma imposta automaticamente le opzioni su{ location: true, inherit: true, relative: $state.$current, notify: true }
. Ciò consente di utilizzare facilmente un percorso assoluto o relativo e specificare solo i parametri che si desidera aggiornare (lasciando che i parametri non specificati ereditino dallo stato corrente).
$ state.transitionTo (a, toParams [, opzioni])
Restituisce una promessa che rappresenta lo stato della transizione.
Metodo di basso livello per la transizione a un nuovo stato.
$state.go()
utilizzatransitionTo
internamente.$state.go()
è consigliato nella maggior parte delle situazioni.
$state.transitionTo
transite a un nuovo stato. Nella maggior parte dei casi, non devi usarlo, potresti preferire$state.go
.
Richiede alcuni parametri in un options
oggetto:
location
: If true
aggiornerà l'URL nella barra degli indirizzi, in caso false
contrario. Se stringa "replace"
, aggiornerà l'URL e sostituirà anche l'ultimo record della cronologia.inherit
: If true
erediterà i parametri dell'URL dall'URL corrente.relative
(stateObject, default null
) : Durante la transizione con percorso relativo (es. '^'), definisce da quale stato essere relativo.notify
: If true
, trasmetterà $stateChangeStart
ed $stateChangeSuccess
eventi.reload
: If true
forzerà la transizione anche se lo stato oi parametri non sono cambiati, ovvero un ricaricamento dello stesso stato.$state.go
è una sorta di scorciatoia che chiama $state.transitionTo
con le opzioni predefinite:
location
: true
inherit
: true
relative
: $state.$current
notify
: true
reload
: false
È più conveniente in quanto la sintassi è più semplice. Puoi chiamarlo solo con un nome di stato.
$state.go('home');