angularjs - Cambio de estado sin cambiar el historial del navegador en ui-router angular
angular-ui-router browser-history (2)
Supongamos que tenemos una lógica como esta:
- Del estado A, cambie al estado B.
- Cada vez que llegamos al estado B, la aplicación siempre nos redirige al estado C llamando a
$state.go(stateC)
- Ahora estamos en el estado C
Mi pregunta es cómo volver al estado A desde el estado C (dado que el estado A puede ser cualquier estado que no conozcamos en tiempo de ejecución, lo que significa que el usuario puede acceder al estado B desde cualquier otro estado)
Puede hacer un seguimiento de los estados visitados en un servicio y luego llamar a $ state.go en el estado anterior.
Puedes ver los cambios de estado así:
$rootScope.$on(''$stateChangeStart'',
function(event, toState, toParams, fromState, fromParams){
// add fromState to history
});
¿Cómo ver el cambio de estado de $ stateProvider en AngularJS?
Utilice la opción de location
con el valor "reemplazar" ...
$state.go(stateC, null, {
location: ''replace''
})
Consulte https://angular-ui.github.io/ui-router/site/#/api/ui.router.state.$state#methods_go
location - {boolean = true | string =} - Si
true
actualizará la url en la barra de ubicación, sifalse
no lo hará. Si es una cadena, debe ser"replace"
, que actualizará la URL y también reemplazará el último registro histórico .