¿Cómo estar atento a un cambio de ruta en AngularJS?

Resuelto Robert Christian asked hace 11 años • 6 respuestas

¿Cómo se podría observar/activar un evento en un cambio de ruta?

Robert Christian avatar Feb 08 '13 11:02 Robert Christian
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?

Mark Rajcok avatar Feb 08 '2013 04:02 Mark Rajcok

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     
    });
});
Zanon avatar May 08 '2016 13:05 Zanon
$rootScope.$on( "$routeChangeStart", function(event, next, current) {
  //..do something
  //event.stopPropagation();  //if you don't want event to bubble up 
});
honkskillet avatar Sep 29 '2015 12:09 honkskillet