2014-11-06 14 views
20

Bu üç ile arasındaki fark nedir? $locationChangeSuccess, $routeChangeSuccess ve $stateChangeSuccess.

cevap

33

$ locationChangeStart: bu $location sağlayıcı ve yayınları her URL değişiklikleri kullanır. Konum, belirli bir URL’nin bir Yolu’na daha çok başvurur. Daha çok düz JavaScript gibi, uygulamanızdaki herhangi bir yola değişebilir ve uygulamanızda rota veya eyalet olarak tanımlanmasının önemi yoktur.

$ routeChangeStart: bu $route sağlayıcı kullanır ve bu, aynı şey bu broadcasts zaman rota değişiklikleri (ngRoute ile kullanılan varsayılan Açısal yönlendirici). Bu denetleyiciler ve görünümler arasında bir bağlantı yapmak için kullanılır.

$ stateChangeStart: Durumunuz değiştiğinde ve bir geçiş başladığında bu yayın gerçekleşir. Farklı bir (daha gelişmiş) ruteprovider uygulaması sağlayan ui yönlendirici tarafından kullanılır. Devletler, farklı durumlar hakkında farklı bilgileri haritalandırmanıza ve bunlara erişmenize izin verir ve $stateParams aracılığıyla durumları arasındaki bilgileri kolayca iletebilirsiniz.

Oldukça benzerler, aslında aynı adları paylaşırlar, ancak ana farklılıklar, uygulamanızın yönlendirme yönüne bağlıdır. Köşeli yönlendirici kullanıyorsanız, yönlendiricilere yönlendirin, ancak ui yönlendiricisini kullanıyorsanız, durumları yapıştırın. Bu sana verebileceğim pratik tavsiyem.

6

Durumu değiştirmeden konumu değiştirebileceğinizi unutmayın (ör. URL değiştirildi, ancak hala aynı durumdasınız).

$stateParam değişikliği, değişikliklerinizi kaybetmek için yapabiliyorsanız, ui yönlendiricisini kullansanız bile $locationChangeStart'u dinlemek isteyebilirsiniz.