Ich konnte ein Authentifizierungs-Token in localstorage
des Browsers speichern, aber ich konnte es nicht als Zeichenfolge abrufen. Ich kann keine Beispiele finden, wie das geht.Wie kann ich Daten vom lokalen Angular2-Speicher speichern und abrufen?
8
A
Antwort
20
Sie selbst einen Dienst schreiben konnte die Serialisierung und Deserialisierung zu kapseln:
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;
}
}
Fügen Sie es zu Ihrem Provider entweder im bootstrap
Aufruf:
bootstrap(App, [ ..., StorageService]);
oder in Ihrer Stammkomponente:
@Component({
// ...
providers: [ ..., StorageService]
})
export class App {
// ...
}
Dann in der Komponente, wo Sie es brauchen, injizieren Sie es einfach in t er Konstruktor:
export class SomeComponent {
private someToken: string;
constructor(private storageService: StorageService) {
someToken = this.storageService.read<string>('my-token');
}
// ...
}
Könnten Sie Ihren Code einfügen, der den lokalen Speicher abruft? –
Es gibt noch eine andere Frage, die das empfiehlt, einen Dienst und Observables zu verwenden, um Änderungen an localStorage-Elementen verfolgen zu können: http://stackoverflow.com/questions/35397198/how-can-i-watch-for-changes- to-localstorage-in-angular2 – Harry