Różnica między $ state.transitionTo () a $ state.go () w Angular ui-router

108

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?

Barcelona
źródło

Odpowiedzi:

151

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.gowywołuje $state.transitionTowewnę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żywa transitionTowewnętrznie. $state.go()jest zalecane w większości sytuacji.

Michelle Tilley
źródło
1
Znalazłem więcej potrzebnych informacji z podanych przez Ciebie linków. Dziękuję bardzo Brandon :)
Barcelona
1
Najwyraźniej wartości wprowadzone w widoku nie są usuwane, jeśli ponownie wyzwolę widok przy użyciu przejściaTo. W każdym razie możemy wymusić odświeżenie wartości / js / view? PS - Strona przeładowania nie jest opcją, jak widok jest nakładka
Swanidhi
10

$state.transitionTotranzyt do nowego stanu. W większości przypadków nie musisz go używać, może wolisz$state.go .

Pobiera kilka parametrów w optionsobiekcie:

  • location: Jeśli truezaktualizuje adres URL w pasku adresu, jeśli falsenie. Jeśli string "replace", zaktualizuje adres URL, a także zastąpi ostatni rekord historii.
  • inherit: Jeśli truebędzie dziedziczyć parametry adresu URL z bieżącego adresu URL.
  • relative (stateObject, default null) : Podczas przechodzenia ze ścieżką względną (np. '^'), określa, od którego stanu ma być względny.
  • notify: Jeśli true, będzie transmitować $stateChangeStarti $stateChangeSuccesswydarzenia.
  • reload: Jeśli truewymusi przejście, nawet jeśli stan lub parametry nie uległy zmianie, czyli przeładowanie tego samego stanu.

$state.goto rodzaj skrótu, który wywołuje $state.transitionToz 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.

$state.go('home');
Mistalis
źródło