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

In AngularJS, a volte $state.transitionTo() usare $state.transitionTo() ea volte usiamo $state.go() . Qualcuno può dirmi come si differenziano e quando uno dovrebbe essere usato rispetto all’altro?

Ti riferisci ad AngularUI Router ? Se è così, il wiki specifica le differenze :

$ state.go (a [, toParams] [, opzioni])

Restituisce una Promessa che rappresenta lo stato della transizione.

Metodo di convenienza 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 al percorso e specificare solo i parametri che si desidera aggiornare (lasciando che i parametri non specificati ereditino dallo stato corrente).


$ state.transitionTo (to, toParams [, opzioni])

Restituisce una Promessa che rappresenta lo stato della transizione.

Metodo di basso livello per la transizione a un nuovo stato. $state.go() usa transitionTo internamente. $state.go() è raccomandato nella maggior parte delle situazioni.

$state.transitionTo transitare in un nuovo stato. Nella maggior parte dei casi, non devi usarlo, potresti preferire $state.go .

Prende alcuni parametri in un object options :

  • location : se true aggiornerà l’url nella barra degli indirizzi, se false non lo farà. Se stringa "replace" , aggiornerà l’url e sostituirà anche l’ultimo record cronologico.
  • inherit : se true erediterà i parametri url dall’url corrente.
  • relative (stateObject, default null ) : quando si esegue la transizione con percorso relativo (ad esempio ‘^’), definisce da quale stato essere relativo.
  • notify : Se true , trasmetterà $stateChangeStart e $stateChangeSuccess .
  • reload : se true imporrà la transizione anche se lo stato oi parametri non sono stati modificati, 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 syntax è più semplice. Puoi chiamarlo solo con un nome di stato.

 $state.go('home');