認証トークンをブラウザの に保存できましたがlocalstorage
、文字列として取得できませんでした。それを行う方法の例が見つかりません。
質問する
11313 次
1 に答える
19
シリアライズとデシリアライズをカプセル化するサービスを自分で作成できます。
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;
}
}
bootstrap
呼び出しのいずれかでプロバイダーに追加します。
bootstrap(App, [ ..., StorageService]);
またはルートコンポーネントで:
@Component({
// ...
providers: [ ..., StorageService]
})
export class App {
// ...
}
次に、必要なコンポーネントで、コンストラクターに注入するだけです。
export class SomeComponent {
private someToken: string;
constructor(private storageService: StorageService) {
someToken = this.storageService.read<string>('my-token');
}
// ...
}
于 2016-06-27T14:18:20.117 に答える