Búsqueda de sitios web

angularjs - ¿cómo guardar y recuperar datos del almacenamiento local de Angular2?


Pude almacenar un token de autenticación en el localstorage del navegador, pero no pude recuperarlo como cadena. No puedo encontrar ningún ejemplo de cómo hacer eso.

Respuesta #1

Podrías escribirte un servicio para encapsular la serialización y deserialización:

export class StorageService {
    write(key: string, value: any) {
        if (value) {
            value = JSON.stringify(value);
        }
        localStorage.setItem(key, value);
    }

    read<T>(key: string): T {
        let value: string = localStorage.getItem(key);

        if (value && value != "undefined" && value != "null") {
            return <T>JSON.parse(value);
        }

        return null;
    }
}

Agrégalo a tus proveedores ya sea en la llamada bootstrap:

bootstrap(App, [ ..., StorageService]);

o en tu componente raíz:

@Component({
    // ...
    providers: [ ..., StorageService]
})
export class App {
    // ...
}

Luego, en el componente donde lo necesitas, simplemente inyectalo en el constructor:

export class SomeComponent {
    private someToken: string;

    constructor(private storageService: StorageService) {
        someToken = this.storageService.read<string>('my-token');
    }

    // ...
}

Artículos relacionados