1

ログに基づいて表示されるメニューがあります。 認証にローカルストレージにjson Webトークンを使用しています。localStorageへの変更を監視し、新しい情報を表示し直す必要があります。ローカルストレージの変更を角2で見る

localstorageの変更を監視するにはどうすればよいですか?

私はこの

localStorage.setItem( 'JWT'、my_token)と私のlocalStorageを設定します。 私がしたいことは、何も起こらない場合、トークンを持っているかどうかをチェックすることですが、変更が発生するとイベントが発生します。私が知っていることから、私はサービスを作って、私が望む場所にそれを注入し、観察可能なものに私を拘束します。

私が持っているサービスは、変更の監視方法がわかりません。

私のサービスは次のとおりです。

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)); 
    } 

} 
+0

「localStorage」とは何か?それがインポートされているか、スニペット内のどこにでも宣言されているのを見ないでください。 – Chrillewoodz

+0

上位の抽象レイヤーで作業する必要があります。トークンを初めて設定する場所。 'EventEmitterを使ってイベントを発生させるべきです。他のコンポーネントは、それにサブスクライブし、それに応じて反応します – Chandermani

+0

それは、ローカルストレージで動作するjavascriptオブジェクトです:http://www.w3schools.com/html/html5_webstorage.asp –

答えて

1

私はあなたがまだ、適切な答えを見つけていない場合は、あなたのためにこれを行うことができ、サービスを作成しました。 h5webstorageはすでにlocalStorageイベントとsessionStorageイベントの両方を監視し、変更を同期します。あなたがしなければならないことは、通常のオブジェクトのように使用することだけです。

+0

あなたがコードを実行するのを手伝ってもらえませんでしたか?実行してみると何もしませんでした。いくつかの異なる手順を実行する必要がありますか? npm start それから... [0] 12:51:40 AM - コンパイルが完了しました。ファイルの変更を監視します。 –

関連する問題