Widzę, że w AngularJS czasami używamy, $state.transitionTo()
a czasami używamy $state.go()
. Czy ktoś może mi powiedzieć, czym się różnią i kiedy należy używać jednego nad drugim?
Widzę, że w AngularJS czasami używamy, $state.transitionTo()
a czasami używamy $state.go()
. Czy ktoś może mi powiedzieć, czym się różnią i kiedy należy używać jednego nad drugim?
Czy masz na myśli router AngularUI ? Jeśli tak, wiki określa różnice :
$ state.go (to [, toParams] [, opcje])
Zwraca Obietnicę reprezentującą stan przejścia.
Wygodna metoda przejścia do nowego stanu.
$state.go
wywołuje$state.transitionTo
wewnętrznie, ale automatycznie ustawia opcje na{ location: true, inherit: true, relative: $state.$current, notify: true }
. Pozwala to na łatwe użycie wartości bezwzględnej lub względnej względem ścieżki i określenie tylko parametrów, które chcesz zaktualizować (pozwalając nieokreślonym parametrom dziedziczyć z bieżącego stanu).
$ state.transitionTo (to, toParams [, opcje])
Zwraca Obietnicę reprezentującą stan przejścia.
Niskopoziomowa metoda przejścia do nowego stanu.
$state.go()
używatransitionTo
wewnętrznie.$state.go()
jest zalecane w większości sytuacji.
$state.transitionTo
tranzyt do nowego stanu. W większości przypadków nie musisz go używać, może wolisz$state.go
.Pobiera kilka parametrów w
options
obiekcie:location
: Jeślitrue
zaktualizuje adres URL w pasku adresu, jeślifalse
nie. Jeśli string"replace"
, zaktualizuje adres URL, a także zastąpi ostatni rekord historii.inherit
: Jeślitrue
będzie dziedziczyć parametry adresu URL z bieżącego adresu URL.relative
(stateObject, defaultnull
) : Podczas przechodzenia ze ścieżką względną (np. '^'), określa, od którego stanu ma być względny.notify
: Jeślitrue
, będzie transmitować$stateChangeStart
i$stateChangeSuccess
wydarzenia.reload
: Jeślitrue
wymusi przejście, nawet jeśli stan lub parametry nie uległy zmianie, czyli przeładowanie tego samego stanu.$state.go
to rodzaj skrótu, który wywołuje$state.transitionTo
z domyślnymi opcjami:location
:true
inherit
:true
relative
:$state.$current
notify
:true
reload
:false
Jest to wygodniejsze, ponieważ składnia jest prostsza. Możesz to nazwać tylko nazwą stanu.
źródło