angularjs angular-ui-router browser-history

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, si false no lo hará. Si es una cadena, debe ser "replace" , que actualizará la URL y también reemplazará el último registro histórico .