在Angular 2中观察本地存储的更改

Watch changes in local Storage in Angular 2

本文关键字:存储 Angular 观察      更新时间:2024-02-19

我有一个基于日志显示的菜单。我在本地存储中使用json网络令牌进行身份验证,我想观察localStorage的更改,然后重新更新我对新信息的看法。

如何查看本地存储的更改?

我用这个设置了本地存储

localStorage.setItem('jwt',my_token);我想做的事情是检查我是否有代币,如果没有,什么都不会发生,但当发生变化时,会引发一个事件。据我所知,我必须创建一个服务,将其注入我想要的地方,并将我订阅到可观察对象。

我所拥有的只是服务,我不知道如何观察变化。

我的服务是:

import { Injectable } from 'angular2/core';
@Injectable()
export class LocalStorageService {
    private storage: any;
    constructor() {
        this.storage = localStorage;
    }
    public retrieve(key: string): any {
        var item = this.storage.getItem(key);
        if (item && item !== 'undefined') {
            return JSON.parse(this.storage.getItem(key));
        }
        return;
    }
    public store(key: string, value: any) {
        this.storage.setItem(key, JSON.stringify(value));
    }
}

我已经创建了一个服务,如果您仍然没有找到合适的答案,它可以为您做到这一点。h5webstorage已经处理监视localStorage和sessionStorage事件并同步更改。你所要做的就是像使用普通物体一样使用它。