Ответ 1
Прежде всего, $routeChangeSuccess
не ограничивается одним контроллером. Он транслируется из $rootScope
, что означает, что его можно прослушивать по каждой области (или каждой области, которая наследуется от $rootScope
), но является событием широкого применения.
Существует также недокументированное событие, которое работает подобно $routeChangeSuccess
, называемому $locationChangeSuccess
. Разница в том, что бывший огонь срабатывает, как только маршрут успешно изменился, а последний срабатывает при изменении URL-адреса, но до изменения маршрута. Обратите внимание, что это не все изменения URL-адресов, просто URL-адрес изменяется таким образом, что приложение AngularJS может его зарегистрировать (например, вызов сеттера на $location.url()
).
Чтобы уточнить, $locationChangeSuccess
также транслируется из $rootScope
.
Для обоих вы можете прослушивать событие с помощью scope.$on('$routeChangeSuccess')
или scope.$on('$locationChangeSuccess')
.