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.gochiama$state.transitionTointernamente 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()utilizzatransitionTointernamente.$state.go()è consigliato nella maggior parte delle situazioni.
$state.transitionTotransite a un nuovo stato. Nella maggior parte dei casi, non devi usarlo, potresti preferire$state.go .
Richiede alcuni parametri in un optionsoggetto:
location: If trueaggiornerà l'URL nella barra degli indirizzi, in caso falsecontrario. Se stringa "replace", aggiornerà l'URL e sostituirà anche l'ultimo record della cronologia.inherit: If trueerediterà 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à $stateChangeStarted $stateChangeSuccesseventi.reload: If trueforzerà 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.transitionTocon le opzioni predefinite:
location: trueinherit: truerelative: $state.$currentnotify: truereload: falseÈ più conveniente in quanto la sintassi è più semplice. Puoi chiamarlo solo con un nome di stato.
$state.go('home');