从这个
repo,我已经成功配置了这个:
import {Component} from "angular2/core"; import {LocalStorageService} from "angular2-localstorage/LocalStorageEmitter"; @Component({ provider: [LocalStorageService] }) export class AppRoot{ constructor(private storageService: LocalStorageService){} ... }
如何使用storageService设置或获取本地存储?我甚至在文档中都找不到示例.
更新
经过一些测试,我已经通过WebStorage管理它来与Decorator一起工作:
import {LocalStorage,SessionStorage} from "angular2-localstorage/WebStorage"; @Component({}) export class LoginComponent implements OnInit { @LocalStorage() public username:string = 'hello world'; ngOnInit() { console.log('username',this.username); // it prints username hello world } }
但是,当我使用Chrome Dev查看我的本地存储时,我什么也看不到:
而在另一个组件中,
import {LocalStorage,SessionStorage} from "angular2-localstorage/WebStorage"; @Component({}) export class DashboardComponent implements OnInit { @LocalStorage() public username:string; ngOnInit() { console.log(this.username); // it prints null } }
解决方法
该服务仅导入应用程序,以便可以运行初始化代码.
你应该使用的方式是通过装饰器作为其他答案提到.
请注意,这意味着您只需要将服务导入到您的根最多(应用程序)组件中,而不是使用装饰器的所有组件.
更新
还要尝试使用instructions第2步中的第一种方式,使用引导而不是AppComponent.
不幸的是,这个图书馆正在寻找一个新的维护者.所以不知道它是多么可靠.