Unterschied zwischen $ state.transitionTo () und $ state.go () im Angular UI-Router

108

In AngularJS sehe ich manchmal, dass wir verwenden $state.transitionTo()und manchmal verwenden wir $state.go(). Kann mir jemand sagen, wie sie sich unterscheiden und wann eines über das andere verwendet werden sollte?

Barcelona
quelle

Antworten:

151

Beziehen Sie sich auf den AngularUI Router ? Wenn ja, gibt das Wiki die Unterschiede an :

$ state.go (zu [, toParams] [, Optionen])

Gibt ein Versprechen zurück, das den Status des Übergangs darstellt.

Komfortmethode für den Übergang in einen neuen Zustand. $state.goruft $state.transitionTointern auf, setzt aber automatisch Optionen auf { location: true, inherit: true, relative: $state.$current, notify: true }. Auf diese Weise können Sie auf einfache Weise einen absoluten oder relativen Pfad verwenden und nur die Parameter angeben, die Sie aktualisieren möchten (während nicht angegebene Parameter vom aktuellen Status erben können).


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

Gibt ein Versprechen zurück, das den Status des Übergangs darstellt.

Low-Level-Methode für den Übergang in einen neuen Zustand. $state.go()verwendet transitionTointern. $state.go()wird in den meisten Situationen empfohlen.

Michelle Tilley
quelle
1
Ich habe weitere Informationen, die ich benötige, über Ihre angegebenen Links gefunden. Vielen Dank Brandon :)
Barcelona
1
Anscheinend werden die in die Ansicht eingegebenen Werte nicht gelöscht, wenn ich die Ansicht mit TransitionTo erneut auslöse. Wie auch immer, wir können die Aktualisierung der Werte / js / view erzwingen? PS -
Seiten-
10

$state.transitionToin einen neuen Zustand übergehen. In den meisten Fällen müssen Sie es nicht verwenden, vielleicht bevorzugen Sie es$state.go .

Es werden einige Parameter in einem optionsObjekt benötigt:

  • location: If trueaktualisiert die URL in der Adressleiste, wenn falsenicht. Wenn Zeichenfolge "replace", wird die URL aktualisiert und der letzte Verlaufsdatensatz ersetzt.
  • inherit: If trueerbt URL-Parameter von der aktuellen URL.
  • relative (stateObject, Standard null) : Definiert beim Übergang mit dem relativen Pfad (z. B. '^'), von welchem ​​Status relativ sein soll.
  • notify: Wenn true, wird gesendet $stateChangeStartund $stateChangeSuccessEreignisse.
  • reload: If trueerzwingt den Übergang, auch wenn sich der Status oder die Parameter nicht geändert haben, auch bekannt als erneutes Laden desselben Status.

$state.goist eine Art Verknüpfung , die $state.transitionTomit Standardoptionen aufruft:

  • location:: true
  • inherit:: true
  • relative:: $state.$current
  • notify:: true
  • reload:: false

Dies ist bequemer, da die Synthax einfacher ist. Sie können es nur mit einem Statusnamen aufrufen.

$state.go('home');
Mistalis
quelle