directives custom angularjs page-refresh

angularjs - custom - retener las variables angulares después de actualizar la página



ng-bind angular (5)

Cuando actualiza una página, todo el contexto de JavaScript se pierde (incluidos todos los datos guardados en variables).

Una forma de mantener la información de una sesión a otra es usar el almacenamiento local del navegador. En su caso, probablemente desee comprobar ngStorage .

Estoy tratando de encontrar una manera de mantener mis variables angular con la actualización de página / a través de los controladores. Mi flujo de trabajo es

  • el usuario inicia sesión a través de Facebook y obtiene un token de acceso
  • El token de acceso de los usuarios se utilizará con cada solicitud.

Probé de dos maneras,

1 - Asignar el token a un rootScope No funciona

2 - Usando una factory

#app.js ''use strict''; angular.module(''recipeapp'', []) .run([''$rootScope'', ''$injector'', ''Authenticate'', function($rootScope,$injector, Authenticate){ $injector.get("$http").defaults.transformRequest = function(data, headersGetter) { $injector.get(''$http'').defaults.headers.common[''auth-token''] = Authenticate.getToken(); } }]); #factory ''use strict''; angular.module(''recipeapp'') .factory(''Authenticate'', function(){ var factory = {}; var accessToken = ""; factory.setToken = function(token) { accessToken = token; } factory.getToken = function() { return accessToken; } return factory; }) #facebook controller I set the the token with every successful login Authenticate.setToken(data.app_token);

Pero el problema es que si actualizo la página, Authenticate.getToken() queda en blanco. Soy bastante nuevo en angular y no puedo encontrar una manera de retener mis datos después de una actualización de página

Cualquier ayuda sería muy apreciada.


Hice lo mismo usando $ window.localStorage.

Es similar a la respuesta aceptada.

var token = "xxx"; $window.localStorage.setItem("token",token); $window.localStorage.getItem("token"); //returns "xxx" $window.localStorage.removeItem("token"); //deletes token


Puedes usar localStorage . Es realmente fácil de usar.

var token = "xxx"; localStorage.setItem("token", token); localStorage.getItem("token"); //returns "xxx"


puedes usar cookies

Para poner variable simple

$cookies.put(''user'', ''abc'');

Para guardar objeto

$cookies.putObject(''objSocket'', anyObject);

y para recuperar datos de las cookies.

$cookies.getObject(''objSocket'');

y

$cookies.get(''user'');

Para usar el código anterior cookies.js cdnjs es:

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/angular.js/1.5.0-rc.0/angular-cookies.min.js"></script>

Ahora inyecte $cookies en su controlador y ngCookies en su app.js

para más detalles https://docs.angularjs.org/api/ngCookies


use `localStorage.setItem("key",value);` to set the value. use `localStorage.getItem("key");`to get the value. use `localStorage.clear();`to clear the value which is set