Angular 2 - 在会话中存储的便捷方式

Phi*_*ipp 5 angular

有没有一种方便的方法来保存sessionStorage而无需手动监视属性更改和更新?

我有一个SearchComponent,例如属性"查询".

export class SearchComponent {
    private query: String;
    private searchResult: SearchResult;
    ...
Run Code Online (Sandbox Code Playgroud)

每次查询或searchResult发生更改(并且还有更多属性)时,我都必须手动更新sessionStorage.

sessionStorage.setItem('query', query);
Run Code Online (Sandbox Code Playgroud)

像自动完成工作的注释之类的东西会很棒:

export class SearchComponent {
    @SessionStored
    private query: String;
    @SessionStored
    private searchResult: SearchResult;
    ...
Run Code Online (Sandbox Code Playgroud)

我已经找到了类似的解决方案在这里.但是这个对于sessionStorage不起作用.

Apu*_*pta 8

我刚试过,它对LocalStorage和SessionStorage都很好.尝试使用以下步骤:

步骤1:

npm install --save angular2-localstorage
Run Code Online (Sandbox Code Playgroud)

第2步:

import { LocalStorageService } from 'angular2-localstorage/LocalStorageEmitter'
import { SessionStorage } from 'angular2-localstorage/WebStorage'
constructor(storageService: LocalStorageService){}
Run Code Online (Sandbox Code Playgroud)

第3步:

@LocalStorage() public lastSearchQuery:Object = {}
Run Code Online (Sandbox Code Playgroud)

要么,

@SessionStorage() public lastSearchQuery:Object = {};
Run Code Online (Sandbox Code Playgroud)

如文档中所述,它是直截了当的.

参考:https://github.com/marcj/angular2-localstorage