Saltar al contenido

Cómo detectar si un usuario hace clic en el botón de retroceso del navegador en Angularjs

Solución:

Esta es mi respuesta anterior para alguna otra pregunta, pero debería ser bueno ayudarlo

Puedes hacerlo usando angular $routeChangeStart

$ routeChangeStart

Emitido antes de un cambio de ruta. En este punto, los servicios de ruta comienzan a resolver todas las dependencias necesarias para que se produzca el cambio de ruta. Por lo general, esto implica obtener la plantilla de vista, así como las dependencias definidas en la propiedad de ruta de resolución. Una vez que se resuelven todas las dependencias, se activa $ routeChangeSuccess.

El cambio de ruta (y el $location cambio que lo desencadenó) se puede prevenir llamando preventDefault método del evento. Ver $rootScope.Scope para obtener más detalles sobre el objeto de evento.


Así que intente con el siguiente código.

  $scope.$on('$routeChangeStart', function (scope, next, current) {
        if (next.$$route.controller != "Your Controller Name") {
            // Show here for your model, and do what you need**
            $("#yourModel").show();
        }
    });

Actualizar:

Debe escribir su trabajo funcional en la ventana emergente del modelo. igual que

Ponga algunos botones de enlace para

  • ¿Estás seguro de ir a la página anterior?
  • ¿Quieres permanecer en la página actual?
  • ¿Quieres cerrar sesión? etc.

luego agregue el evento ng-click para ir a la página anterior, permanezca en la página actual con el uso return falseetc.

¿TIENE SENTIDO TIPO?

Estarías mejor usando $ stateChangeStart evento con enrutador de interfaz de usuario angular. Habrá problemas con $ routeChangeStart ya que el evento $ routeChangeStart se activará cuando cambie la URL.

Por ejemplo:

Tiene 4 estados, cada uno con 2 subestados, y cada sub / estado o estado no está asociado con una URL. En tales casos, es posible que escuchar $ routeChangeStart no funcione.

En el controlador / vista donde desea solicitar al usuario que confirme la redirección, haga esto.

Esto se llamará cuando el estado cambie en su alcance actual (que es la vista / controlador en el que se encuentra)

$scope.$on('$stateChangeStart', function(event, toState, toParams, fromState, fromParams) {
    //Open the modal
    $('my-modal').show();
});
¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *