Differenza tra $ state.transitionTo () e $ state.go () in Angular ui-router


Risposte:


151

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()utilizza transitionTointernamente. $state.go()è consigliato nella maggior parte delle situazioni.


1
Ho trovato più informazioni di cui ho bisogno dai tuoi link forniti. Grazie mille Brandon :)
Barcellona

1
Apparentemente, i valori immessi nella vista non vengono cancellati se riattivo la vista usando Transizione. Comunque possiamo forzare il refresh dei valori / js / view? PS - Il ricaricamento della pagina non è un'opzione in quanto la visualizzazione è una sovrapposizione
Swanidhi

10

$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: 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');
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.