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