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