How to watch for a route change in AngularJS?

angularjs, javascript

Solution

Note: This is a proper answer for a legacy version of AngularJS. See this question for updated versions.

$scope.$on('$routeChangeStart', function($event, next, current) { 
   // ... you could trigger something here ...
 });

The following events are also available (their callback functions take different arguments):

- $routeChangeSuccess

- $routeChangeError

- $routeUpdate - if reloadOnSearch property has been set to false

See the $route docs.

There are two other undocumented events:

- $locationChangeStart

- $locationChangeSuccess

See What's the difference between $locationChangeSuccess and $locationChangeStart?

Problem

How would one watch/trigger an event on a route change?

Original source

Related problems