Was Sie wollen, ist ein Thema. Schauen Sie sich hier die Dokumentation (https://github.com/Reactive-Extensions/RxJS/blob/master/doc/api/subjects/subject.md)
For a quick example, something like this:
@Injectable()
export class StorageService {
...
private storageSub= new Subject<boolean>();
...
watchStorage(): Observable<any> {
return this.storageSub.asObservable();
}
setItem(key: string, data: any) {
localStorage.setItem(key, data);
this.storageSub.next('changed');
}
removeItem(key) {
localStorage.removeItem(key);
this.storageSub.next('changed');
}
}
Inside Component
constructor(private storageService: StorageService ){}
ngOnInit() {
this.storageService.watchStorage().subscribe((data:string) => {
// this will call whenever your localStorage data changes
// use localStorage code here and set your data here for ngFor
})
}
Letztlich ist diese Lösung sauberer als meine, wenn Sie auf alles zählen kann, die verwendet local tut dies durch diesen Dienst. Sie haben jedoch einige Probleme mit dem Code. Der Typ des Betreffs ist boolesch, aber Sie übergeben Strings an next(), und da Sie Strings übergeben, könnte es sich auch um den Schlüssel des geänderten Elements handeln. Es kann auch ein Element festgelegt werden, das mit dem bereits gespeicherten Element übereinstimmt, sodass sich nichts geändert haben sollte, aber das OP kann diese Detailebene implementieren, wenn es gewünscht wird. –
Vielen Dank. Funktioniert perfekt – Hubert