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

时间:2016-04-06 12:19:15

标签: javascript angularjs angular angular-services angular2-services

我根据记录显示菜单。 我在本地存储中使用json web令牌进行身份验证,我想观察对localStorage的更改,然后重新更新我对新信息的看法。

如何查看localstorage的更改?

我用这个

设置了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));
    }

}

1 个答案:

答案 0 :(得分:2)

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