通过花费时间将数据存储在本地存储中

时间:2018-08-14 06:01:52

标签: angular service local-storage

我是新手,尝试了几件事,

以下是我的服务

import { Injectable } from '@angular/core';

@Injectable({
  providedIn: 'root'
})
export class  StorageService {

  constructor() { }

    get loginUniqueKey(): string {
      return localStorage.getItem('loginUniqueKey')
    }
    set loginUniqueKey(value: string) {
      localStorage.setItem('loginUniqueKey',value)
    }
} 

并按照以下方式存储

this.storageService.loginUniqueKey = res.id;
        this.router.navigate(['/nextpage']);

它将移至页面,但在下一页ngOnInit上,本地存储值不可用,当我刷新时就可以了。

我这样做的另一种情况

this.storageService.loginUniqueKey = res.id;
console.log(this.storageService.loginUniqueKey) // just an extra line
        this.router.navigate(['/nextpage']);

然后确定,

在本地存储中存储似乎很耗时间

但是当我直接将数据存储在本地存储(例如

)中时,还可以
localStorage.setItem('loginUniqueKey',res.id)

如何使该服务正常工作。

谢谢

1 个答案:

答案 0 :(得分:0)

您的app.module必须像

import { NgModule }      from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';

import {StorageService} from './services/storege.service.ts' //<--or whatever

@NgModule({
  imports:      [ BrowserModule,
                 ...your modules here... 
  ],
  providers:    [ storageService,
                  ..other services common to all the app..], //<--add yours service here
  declarations: [ AppComponent ],
  exports:      [ AppComponent ],
  bootstrap:    [ AppComponent ]
})
export class AppModule { }