Angular ui-router'da $ state.transitionTo () ve $ state.go () arasındaki fark


108

AngularJS'de bazen kullandığımızı $state.transitionTo(), bazen kullandığımızı görüyorum $state.go(). Biri bana nasıl farklı olduklarını ve birinin diğerine göre ne zaman kullanılması gerektiğini söyleyebilir mi?

Yanıtlar:


151

AngularUI Router'dan mı bahsediyorsunuz ? Eğer öyleyse, wiki farklılıkları belirtir :

$ state.go (to [, toParams] [, seçenekler])

Geçiş durumunu temsil eden bir Söz verir .

Yeni bir duruma geçiş için uygun yöntem. dahili olarak $state.goarar, $state.transitionToancak seçenekleri otomatik olarak olarak ayarlar { location: true, inherit: true, relative: $state.$current, notify: true }. Bu, mutlak veya yola göre kolayca kullanmanıza ve yalnızca güncellemek istediğiniz parametreleri belirlemenize olanak tanır (belirtilmemiş parametrelerin mevcut durumdan devralmasına izin verirken).


$ state.transitionTo (to, toParams [, seçenekler])

Geçiş durumunu temsil eden bir Söz verir .

Yeni bir duruma geçiş için düşük seviyeli yöntem. dahili olarak $state.go()kullanır transitionTo. $state.go()çoğu durumda önerilir.


1
Verdiğiniz bağlantılardan ihtiyacım olan daha fazla bilgi buldum. Çok teşekkürler Brandon :)
Barcelona

1
Görünüşe göre, geçişi kullanarak görünümü yeniden tetiklersem, görünümde girilen değerler silinmiyor. Her neyse, / js / view değerlerini yenilemeye zorlayabilir miyiz? Not: Görünüm bir kaplama olduğu için sayfayı yeniden yükleme bir seçenek değildir
Swanidhi

10

$state.transitionToyeni bir duruma geçiş. Çoğu durumda kullanmak zorunda değilsiniz, tercih edebilirsiniz$state.go .

Bir optionsnesnede bazı parametreler alır :

  • location: Eğer değilse true, konum çubuğundaki url'yi güncelleyecektir false. Dize ise "replace", url'yi güncelleyecek ve ayrıca son geçmiş kaydını değiştirecektir.
  • inherit: If true, url parametrelerini mevcut url'den devralacak.
  • relative (stateObject, varsayılan null) : Göreli yolla geçiş yapılırken (örneğin '^'), hangi durumun göreceli olacağını tanımlar.
  • notify: Eğer true, yayınlayacak $stateChangeStartve $stateChangeSuccessetkinlikler.
  • reload: Durum trueveya parametreler değişmemiş olsa bile geçişi zorlayacaksa, yani aynı durumun yeniden yüklenmesi.

$state.govarsayılan seçeneklerle çağıran bir tür kısayol$state.transitionTo :

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

Synthax daha basit olduğu için daha kullanışlıdır. Onu yalnızca bir eyalet adıyla arayabilirsiniz.

$state.go('home');
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.