¿Cómo estar atento a un cambio de ruta en AngularJS?
¿Cómo se podría observar/activar un evento en un cambio de ruta?
Aceptado
Nota : esta es una respuesta adecuada para una versión heredada de AngularJS. Consulte esta pregunta para obtener versiones actualizadas.
$scope.$on('$routeChangeStart', function($event, next, current) {
// ... you could trigger something here ...
});
Los siguientes eventos también están disponibles (sus funciones de devolución de llamada toman argumentos diferentes):
- $rutaCambiarÉxito
- $rutaCambiarError
- $routeUpdate: si la propiedad reloadOnSearch se ha establecido en falso
Consulte los documentos de $ ruta .
Hay otros dos eventos indocumentados :
- $ubicaciónCambiarInicio
- $ubicaciónCambioÉxito
Consulte ¿Cuál es la diferencia entre $locationChangeSuccess y $locationChangeStart?
Si no desea colocar el reloj dentro de un controlador específico, puede agregar el reloj para toda la aplicación en la aplicación Angular.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
});