0

我正在使用angular-2-local-storage,它具有setItems $的可觀察值,我試圖......用在指令下面的代碼:

/** app-theme.directive.ts **/

import { Directive, ElementRef, Input } from '@angular/core'; 
import { UserSettings } from './core/user-settings'; 
import { LocalStorageService } from 'angular-2-local-storage'; 

@Directive({ 
    selector: '[appTheme]' 
}) 
export class AppThemeDirective { 
    constructor(el: ElementRef, localStorageService: LocalStorageService) { 
    localStorageService.setItems$.subscribe(function(x: any) { 
     console.log('subscribed', x); 
    }); 
    } 

} 

本地存儲更新,並在我的代碼堅持不夠好,但沒有被觀察到的更新並登錄到控制檯。我錯過了任何明顯的缺陷?

回答

0

localStoragesessionStorage已經存在於lib中,這樣你就可以直接使用localStorage.setItem()和localStorage.getItem()。

mycomponent.ts

import { Directive, ElementRef, Input } from '@angular/core'; 
import { UserSettings } from './core/user-settings'; 
import { LocalStorageService } from 'angular-2-local-storage'; 

@Directive({ 
    selector: '[appTheme]' 
}) 
export class AppThemeDirective { 
    constructor(el: ElementRef, localStorageService: LocalStorageService) { 

    let data = { application: this.application }; 
    localStorage.setItem('applicationdata', JSON.stringify(data)); 
    var data = localStorage.getItem('applicationdata'); 
    } 

} 

希望這會幫助你。

+0

嗨 - 我沒有問題的角度2本地存儲第三方模塊的get/set方法。只需訂閱它創建的Observable,setItems $即可。將「setItem:true」添加到notifyOptions配置可以解決我的問題。 – Fewster