angularjs ionic-framework angular-ui-router back

angularjs - Eliminar la página del historial, por lo que "atrás" funcionará correctamente



ionic-framework angular-ui-router (3)

¡Aquí está la solución!

simplemente use:

$ionicHistory.nextViewOptions({ disableBack: true });

Ejemplo para la función de inicio de sesión:

$scope.login = function () { Security.login($scope.cred.email, $scope.cred.password) .success(function(data) { Security.setUser(data.data[0]); $ionicHistory.nextViewOptions({ disableBack: true }); $state.go(''posts'', {}, {location: "replace", reload: true}); }).error(function(data) { $scope.showAlert(); }); };

Tengo mi aplicación que necesita para iniciar sesión para acceder a las otras páginas.

por lo tanto, la primera página es "iniciar sesión" y verifica si ya ha iniciado sesión; si es así, será redirigido a la aplicación de la página principal; si no, le mostrará la página de inicio de sesión.

ahora el problema es cuando el usuario se encuentra dentro del área de la página registrada, y él vuelve a hacer clic para acceder a la página de "inicio de sesión" y luego volver a la página principal, ya que ya ha iniciado sesión.

Así que él está atrapado en un bucle infinito.

¿Cómo puedo eliminar la página de inicio de sesión del historial.

Al igual que en Android "Android eliminar actividad de la pila de historial"


Búsqueda rápida: https://.com/a/8969975/185672

Respuesta principal:

En lugar de usar window.location = url; para redirigir,

intente window.location.replace(url); .

después de usar reemplazar (), la página actual no se guardará en el historial de la sesión, lo que significa que el usuario no podrá usar el botón Atrás para navegar hacia ella.


Para una forma pura de AngularJS de lograr esto (en lugar de iónico o javascript en las otras respuestas), use el método replace () del servicio $ location ( documentation ):

Utilice $location.url(''/newpath''); o $location.path(''/newpath''); Como normalmente lo harías en la redirección angular. Y luego simplemente agregue $location.replace(); Justo después de eso. O puedes encadenar los comandos así:

$location.url(''/newpath'').replace();