page change javascript angular local-storage session-variables

javascript - change - page title angular 4



Almacenamiento local en Angular 2 (15)

Necesito almacenar datos en la sesión del navegador y recuperarlos hasta que finalice la sesión. ¿Cómo se usa el almacenamiento local y de sesión en Angular 2?


Aquí hay un ejemplo de un servicio simple que usa localStorage para conservar los datos:

import { Injectable } from ''@angular/core''; @Injectable() export class PersistanceService { constructor() {} set(key: string, data: any): void { try { localStorage.setItem(key, JSON.stringify(data)); } catch (e) { console.error(''Error saving to localStorage'', e); } } get(key: string) { try { return JSON.parse(localStorage.getItem(key)); } catch (e) { console.error(''Error getting data from localStorage'', e); return null; } } }

Para usar estos servicios, bríndelo en algún módulo de su aplicación de manera normal, por ejemplo, en el módulo central. Luego use así:

import { Injectable } from ''@angular/core''; @Injectable() export class SomeOtherService { constructor(private persister: PersistanceService) {} someMethod() { const myData = {foo: ''bar''}; persister.set(''SOME_KEY'', myData); } someOtherMethod() { const myData = persister.get(''SOME_KEY''); } }


Artículo de conjunto de almacenamiento local

Sintaxis:

localStorage.setItem(key,value); localStorage.getItem(key);

Ejemplo:

localStorage.setItem("name","Muthu"); if(localStorage){ //it checks browser support local storage or not let Name=localStorage.getItem("name"); if(Name!=null){ // it checks values here or not to the variable //do some stuff here... } }

también puedes usar

localStorage.setItem("name", JSON.stringify("Muthu"));

Elemento de conjunto de almacenamiento de sesión

Sintaxis:

sessionStorage.setItem(key,value); sessionStorage.getItem(key);

Ejemplo:

sessionStorage.setItem("name","Muthu"); if(sessionStorage){ //it checks browser support session storage/not let Name=sessionStorage.getItem("name"); if(Name!=null){ // it checks values here or not to the variable //do some stuff here... } }

también puedes usar

sessionStorage.setItem("name", JSON.stringify("Muthu"));

Almacene y recupere datos fácilmente


Como se dijo anteriormente, debe ser: localStorageService.set(''key'', ''value''); y localStorageService.get(''key'');


Instalar "angular-2-local-storage"

import { LocalStorageService } from ''angular-2-local-storage'';


La API localStorage estándar debería estar disponible, solo haga, por ejemplo:

localStorage.setItem(''whatever'', ''something'');

Es bastante ampliamente compatible .

Tenga en cuenta que deberá agregar "dom" a la matriz "lib" en su tsconfig.json si aún no lo tiene.


La sintaxis del elemento establecido es

localStorage.setItem(key,value);

La sintaxis de get item es

localStorage.getItem(key);

Un ejemplo de esto es:

localStorage.setItem(''email'',''[email protected]''); let mail = localStorage.getItem("email"); if(mail){ console.log(''your email id is'', mail); } }



Para almacenar datos en el almacenamiento local,

localStorage.setItem(''key'', ''value'');

Asegúrese de stringificar el valor, por ejemplo, si tiene un objeto
localStorage.setItem(itemName, JSON.stringify(itemData));

O para pares clave-valor individuales
localStorage.setItem(''currentUser'', JSON.stringify({ token: token, name: name }));

Y para recuperar datos del almacenamiento local
user = JSON.parse(localStorage.getItem(currentUser));

editar: También puede usar un paquete que se base en la API nativa localStoreage (que estamos usando anteriormente) para lograr esto y no tiene que preocuparse por stringify y análisis. Verifique este paquete para angular 5 y superior. @ngx-pwa/local-storage


Para establecer el elemento u objeto en el almacenamiento local:

localStorage.setItem(''yourKey'', ''yourValue'');

Para obtener el artículo u objeto en el almacenamiento local, debe recordar su clave.

let yourVariable = localStorage.getItem(''yourKey'');

Para eliminarlo del almacenamiento local:

localStorage.removeItem(''yourKey'');


Podemos usar fácilmente localStorage para configurar los datos y recibirlos.

Nota: funciona tanto con angular2 como con angular 4

//set the data localStorage.setItem(key, value); //syntax example localStorage.setItem(''tokenKey'', response.json().token); //get the data localStorage.getItem(''tokenKey'') //confirm if token is exist or not return localStorage.getItem(''tokenKey'') != null;


Puede usar el servicio LocalStorage Asynchronous Angular 2+ de cyrilletuzi .

Instalar:

$ npm install --save @ngx-pwa/local-storage

Uso:

// your.service.ts import { LocalStorage } from ''@ngx-pwa/local-storage''; @Injectable() export class YourService { constructor(private localStorage: LocalStorage) { } } // Syntax this.localStorage .setItem(''user'', { firstName:''Henri'', lastName:''Bergson'' }) .subscribe( () => {} ); this.localStorage .getItem<User>(''user'') .subscribe( (user) => { alert(user.firstName); /*should be ''Henri''*/ } ); this.localStorage .removeItem(''user'') .subscribe( () => {} ); // Simplified syntax this.localStorage.setItemSubscribe(''user'', { firstName:''Henri'', lastName:''Bergson'' }); this.localStorage.removeItemSubscribe(''user'');

Más información aquí:

@ngx-pwa/local-storage
https://github.com/cyrilletuzi/angular-async-local-storage


También puede considerar el uso de la biblioteca mantenida por mí: ngx-store ( npm i ngx-store )

Hace que trabajar con localStorage, sessionStorage y cookies sea increíblemente fácil. Existen algunos métodos compatibles para manipular los datos:

1) decorador:

export class SomeComponent { @LocalStorage() items: Array<string> = []; addItem(item: string) { this.items.push(item); console.log(''current items:'', this.items); // and that''s all: parsing and saving is made by the lib in the background } }

Las variables almacenadas por los decoradores también se pueden compartir entre diferentes clases: también hay un @TempStorage() (con un alias de @SharedStorage() )) diseñado para ello.

2) Métodos de servicio simples:

export class SomeComponent { constructor(localStorageService: LocalStorageService) {} public saveSettings(settings: SettingsInterface) { this.localStorageService.set(''settings'', settings); } public clearStorage() { this.localStorageService.utility .forEach((value, key) => console.log(''clearing '', key)); this.localStorageService.clear(); } }

3) Patrón de constructor:

interface ModuleSettings { viewType?: string; notificationsCount: number; displayName: string; } class ModuleService { constructor(public localStorageService: LocalStorageService) {} public get settings(): NgxResource<ModuleSettings> { return this.localStorageService .load(`userSettings`) .setPath(`modules`) .setDefaultValue({}) // we have to set {} as default value, because numeric `moduleId` would create an array .appendPath(this.moduleId) .setDefaultValue({}); } public saveModuleSettings(settings: ModuleSettings) { this.settings.save(settings); } public updateModuleSettings(settings: Partial<ModuleSettings>) { this.settings.update(settings); } }

Otra cosa importante es que puede escuchar (todos) los cambios de almacenamiento, por ejemplo (el siguiente código usa la sintaxis RxJS v5):

this.localStorageService.observe() .filter(event => !event.isInternal) .subscribe((event) => { // events here are equal like would be in: // window.addEventListener(''storage'', (event) => {}); // excluding sessionStorage events // and event.type will be set to ''localStorage'' (instead of ''storage'') });

WebStorageService.observe() devuelve un Observable regular, para que pueda comprimirlos, filtrarlos, hacerlos rebotar, etc.

Siempre estoy abierto a escuchar sugerencias y preguntas que me ayuden a mejorar esta biblioteca y su documentación.


Utilice el módulo Angular2 @LocalStorage , que se describe como:

Este pequeño decorador Angular2 / mecanografiado hace que sea muy fácil guardar y restaurar automáticamente un estado variable en su directiva (propiedad de clase) usando HTML5 ''LocalStorage.

Si necesita utilizar cookies, debe consultar: https://www.npmjs.com/package/angular2-cookie


instalar

npm install --save @ngx-pwa/local-storage

antes que nada necesitas instalar "angular-2-local-storage"

import { LocalStorageService } from ''angular-2-local-storage'';

Guardar en LocalStorage:

localStorage.setItem(''key'', value);

Obtener del almacenamiento local:

localStorage.getItem(''key'');


Guardar en LocalStorage:

localStorage.setItem(''key'', value);

Para objetos con propiedades:

localStorage.setItem(''key'', JSON.stringify(object));

Obtener del almacenamiento local:

localStorage.getItem(''key'');

Para objetos:

JSON.parse(localStorage.getItem(''key''));

LocalStorage Object guardará los datos como una cadena y los recuperará como una cadena . Debe analizar la salida deseada si el valor es un objeto almacenado como cadena. por ejemplo, parseInt(localStorage.getItem(''key''));

Es mejor usar el marco proporcionado localStroage en lugar de la biblioteca de terceros localStorageService o cualquier otra cosa porque reduce el tamaño de su proyecto.