angularjs scope refresh history preserve

angularjs - ¿Cómo maneja la aplicación angular la página de actualización y podríamos usar $ history en las directivas de carga?



scope refresh (3)

¿No podría usar window.localstorage para conservar sus variables js? De esa manera, si el usuario actualiza la página fuera de la aplicación, podría volver a cargar sus valores.

Así que dos preguntas.

  1. Cómo manejan las aplicaciones angulares la página de actualización, b / c por lo que escuché, $ rootScope destroy () en la actualización y la aplicación se vuelve a ejecutar y se vuelve a configurar, y me preguntaba si hay una forma elegante de conservar $ rootScope sin tener que almacenar las variables $ rootScope como una cadena en un almacenamiento.

  2. Si cargo una plantilla en una directiva que carga un modal en la página, ¿es posible configurar el historial para no navegar pero revertir el modal abierto? y debido a las validaciones y demás, no creo que sea posible implementar la misma función usando href.


Probablemente no haya manera de preservar ninguna variable javascript a través de una recarga de página y $ rootScope es solo una variable javascript.

Sin embargo, parece que lo que está buscando es una forma de hacer que su aplicación "comience desde el mismo punto" que se dejó cuando se recargó una página. Te recomendaría que te familiarices con la noción de estado . Cada aplicación puede verse como un conjunto de estados y transiciones entre ellas. Cada interacción del usuario o cualquier otra acción que suceda dentro de las aplicaciones cambia el estado de la aplicación o la mantiene en el mismo estado. Por ejemplo: al hacer clic en un enlace de usuario de una lista de usuarios, el estado cambia de "ver lista de usuarios" a "ver detalles de usuario para usuario con id = 213", haciendo clic en el botón "Editar" en "ver detalles de usuario para usuario con id = 213 "cambia de estado a" editar usuario con id = 213 ". Y a medida que esas transiciones tienen lugar, a las variables se les asignan valores, las vistas cambian, las solicitudes se envían, etc.

Las dos cosas que se necesitan para el problema de "comenzar desde el mismo punto" son el administrador de estados y una manera de serializar y almacenar estados.

Como administrador de estado, además de la directiva de enrutador de $ core, puede utilizar ui-router . En cuanto a la manera de serializar y almacenar un estado con ui-router , esto se hace a través de la URL. El beneficio de ui-router sobre core $ router es que permite estados anidados y generalmente es más flexible.

ui-router también tiene una solución para su segunda pregunta en su wiki de github https://github.com/angular-ui/ui-router/wiki/Frequently-Asked-Questions#how-to-open-a-dialogmodal-at-a-certain-state


Si sus $routeProvider URL están asignadas con el $routeProvider , puede volver a cargar un controlador invocando $route.reload() . Esto actualiza la página sin destruir el $ rootScope.
He creado un plunker para mostrar esto . El controlador cuenta cuántas veces se ha recargado la página.