以角度2访问跨应用程序的会话存储

时间:2017-11-23 14:02:00

标签: angular typescript

我有一个会话变量作为JSON值。我在home.component.ts中有这个,需要在多个地方访问此变量。

我的代码:

.do(data => sessionStorage.setItem('homes', JSON.stringify(data)))
var session = sessionStorage.getItem('homes'); 

如何在整个应用程序中访问session变量。

1 个答案:

答案 0 :(得分:0)

定义服务并将其注入yout组件。 在此内部,定义sessionStorage的getter和setter并对其进行管理。

例如:

import { Injectable } from '@angular/core';

@Injectable()
export class HomeService {

  constructor() { }

  public setItem(data: any){
    sessionStorage.setItem('homes', JSON.stringify(data));
  }

  public getItem(){
   return JSON.parse(sessionStorage.getItem('homes'));
  }
}

然后在你的home.component.ts

constructor(private homeService: HomeService){}

ngInit(){
this.homeService.setItem(data...); //pseudocode
}

并且,当您想要检索数据时,您只需调用homeService.getItem()。