Po pierwsze, $routeChangeSuccess
nie jest ograniczony do jednego kontrolera. Jest transmitowany z poziomu $rootScope
, co oznacza, że można go odsłuchiwać na każdym z zakresów (lub każdego zakresu dziedziczącego po $rootScope
), ale jest zdarzeniem szerokim dla aplikacji.
Istnieje również nieudokumentowane zdarzenie, które działa podobnie do $routeChangeSuccess
o nazwie $locationChangeSuccess
. Różnica polega na tym, że pierwsza jest uruchamiana, gdy trasa została pomyślnie zmieniona, a druga jest uruchamiana po zmianie adresu URL, ale przed zmianą trasy. Zauważ, że to nie wszystkie zmiany adresów URL, tylko czas, w którym URL zmienia się w sposób, w jaki aplikacja AngularJS może je zarejestrować (na przykład wywołanie setera do $location.url()
).
Po prostu, aby wyjaśnić, $locationChangeSuccess
jest również nadawany z $rootScope
.
W obu przypadkach można odsłuchać zdarzenie za pomocą scope.$on('$routeChangeSuccess')
lub scope.$on('$locationChangeSuccess')
.
Mogłeś kontroler podstawowy, który obejmuje całą aplikację, i że kontroler nasłuchiwać Zdarzenie routeChangeSuccess. –