2016-05-11 18 views
5

Czy istnieje wygodny sposób zapisywania w sessionStorage bez konieczności ręcznego sprawdzania zmian właściwości i aktualizacji?Angular 2 - Wygodny sposób przechowywania w sesji

Posiadam SearchComponent z właściwością "zapytanie" na przykład.

export class SearchComponent { 
    private query: String; 
    private searchResult: SearchResult; 
    ... 

Za każdym razem, gdy zapytanie lub searchResult się zmienia (i jest ich jeszcze więcej), muszę ręcznie zaktualizować sessionStorage.

sessionStorage.setItem('query', query); 

Coś adnotacją, że robi zadanie automatycznie byłoby świetnie:

export class SearchComponent { 
    @SessionStored 
    private query: String; 
    @SessionStored 
    private searchResult: SearchResult; 
    ... 

ja już znaleźć podobne rozwiązanie here. Ale ta nie zadziałała dla sessionStorage.

+0

'https: // github.com/marcj/angular2-localStorage' pracuje dla' sessionStorage' też, zgodnie z kodem źródłowym. –

+0

Ja też to czytałem, ale brakowało im zajęć. Może to być niestabilna budowa ... – Philipp

+0

angular2-localStorage wygląda dokładnie to, czego potrzebuję - ale to nie działa. "importuj {LocalStorage, SessionStorage} z" angular2-localstorage/WebStorage ";" <- już się nie udało, ponieważ nie ma pliku "WebStorage" – Philipp

Odpowiedz

8

Po prostu próbowałem & działa idealnie dobrze zarówno dla LocalStorage & SessionStorage. Użyj kroki:

Etap 1:

npm install --save angular2-localstorage 

Etap 2:

import { LocalStorageService } from 'angular2-localstorage/LocalStorageEmitter' 
import { SessionStorage } from 'angular2-localstorage/WebStorage' 
constructor(storageService: LocalStorageService){} 

Etap 3:

@LocalStorage() public lastSearchQuery:Object = {} 

lub

@SessionStorage() public lastSearchQuery:Object = {}; 

jest to proste, o czym wspomniano w dokumentach.

referencyjny: https://github.com/marcj/angular2-localstorage

+0

Cholera, Angular osiągnął punkt jQuery. – MoshMage