wake-up-neo.com

Unterschied zwischen $ state.transitionTo () und $ state.go () in Angular ui-router

In AngularJS wird manchmal $state.transitionTo() und manchmal $state.go() verwendet. Kann mir jemand sagen, wie sie sich unterscheiden und wann eine über der anderen verwendet werden sollte?

102
Barcelona

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

$ state.go (to [ toParams] [ options])

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

Komfortmethode für den Übergang in einen neuen Zustand. $state.go Ruft intern $state.transitionTo Auf, setzt die Optionen jedoch automatisch 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 (wobei nicht angegebene Parameter vom aktuellen Status erben dürfen).


$ 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 transitionTo intern. $state.go() wird in den meisten Situationen empfohlen.

145
Michelle Tilley

$state.transitionTo Übergang in einen neuen Zustand. In den meisten Fällen müssen Sie es nicht verwenden. Möglicherweise bevorzugen Sie $state.go.

Es werden einige Parameter in einem options Objekt benötigt:

  • location: Wenn true die URL in der Adressleiste aktualisiert, wenn false nicht. Wenn der String "replace" Ist, wird die URL aktualisiert und auch der letzte Verlaufsdatensatz ersetzt.
  • inherit: Wenn true URL-Parameter von der aktuellen URL erbt.
  • relative (stateObject, default null) : Definiert beim Übergang mit relativem Pfad (z. B. '^'), von welchem ​​Zustand aus relativ zu sein ist.
  • notify: Wenn true, werden Ereignisse $stateChangeStart und $stateChangeSuccess gesendet.
  • reload: Wenn true einen Übergang erzwingt, auch wenn sich der Status oder die Parameter nicht geändert haben, auch bekannt als Neuladen desselben Status.

$state.go ist eine Art Verknüpfung , die $state.transitionTo Mit Standardoptionen aufruft:

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

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

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