Comment regarder/déclencher un événement sur un changement d'itinéraire?
Remarque : Il s'agit d'une réponse appropriée pour une version héritée d'AngularJS. Voir cette question pour les versions mises à jour.
$scope.$on('$routeChangeStart', function($event, next, current) {
// ... you could trigger something here ...
});
Les événements suivants sont également disponibles (leurs fonctions de rappel utilisent des arguments différents):
Voir le $ route docs.
Il existe deux autres événements non documentés :
Voir Quelle est la différence entre $ locationChangeSuccess et $ locationChangeStart?
Si vous ne souhaitez pas placer la montre dans un contrôleur spécifique, vous pouvez l'ajouter pour l'application complète dans Angular app run()
var myApp = angular.module('myApp', []);
myApp.run(function($rootScope) {
$rootScope.$on("$locationChangeStart", function(event, next, current) {
// handle route changes
});
});
$rootScope.$on( "$routeChangeStart", function(event, next, current) {
//..do something
//event.stopPropagation(); //if you don't want event to bubble up
});
$rootScope.$on( "$routeChangeStart", function(event, next, current) {
//if you want to interrupt going to another location.
event.preventDefault(); });