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?
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?
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.go
ruft$state.transitionTo
intern 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()
verwendettransitionTo
intern.$state.go()
wird in den meisten Situationen empfohlen.
$state.transitionTo
in 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
options
Objekt benötigt:location
: Iftrue
aktualisiert die URL in der Adressleiste, wennfalse
nicht. Wenn Zeichenfolge"replace"
, wird die URL aktualisiert und der letzte Verlaufsdatensatz ersetzt.inherit
: Iftrue
erbt URL-Parameter von der aktuellen URL.relative
(stateObject, Standardnull
) : Definiert beim Übergang mit dem relativen Pfad (z. B. '^'), von welchem Status relativ sein soll.notify
: Wenntrue
, wird gesendet$stateChangeStart
und$stateChangeSuccess
Ereignisse.reload
: Iftrue
erzwingt den Übergang, auch wenn sich der Status oder die Parameter nicht geändert haben, auch bekannt als erneutes Laden 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 bequemer, da die Synthax einfacher ist. Sie können es nur mit einem Statusnamen aufrufen.
quelle