【问题标题】:Data in localStore is null before display page显示页面前localStorage中的数据为空
【发布时间】:2017-06-12 16:43:55
【问题描述】:

我在 localStorage 中的数据有问题.. 我试图在显示我的页面之前在 localStorage 中设置数据,以便在获取并显示它之后.. 但是在显示我的页面之前,我在 localStorage 中的项目为空..

我的代码 文件.ts

displayFolder(folderId) {
    this.foldersService.getFoldersById(folderId).subscribe(
      foldersConsult => {
        this.foldersConsult.push(foldersConsult);
        localStorage.setItem('foldersConsult', JSON.stringify(this.foldersConsult));
      });
    this.router.navigate(['/folder/consult']);
  };

我的html调用displayFolder方法

 <tr *ngFor="let folder of foldersItems" (dblclick)="displayFolder(folder.id)" >
   ...

 </tr>

我的服务 ts

getFoldersById(folderId) {
    return this.http.get('../assets/data/folders.json')
      .map((response) => {
        const allFolder = response.text() ? response.json() : [{}];
        if (allFolder) {
          for (const folder of allFolder) {
            if (folder.id === folderId) {
              this.folderssConsult.push(folder);
              return folder;
            }
          }
        }
        return allFolder;
      });
  }

那么如何在显示我的页面之前在 localStorage 中设置数据..?

【问题讨论】:

    标签: angular local-storage


    【解决方案1】:

    您可以在对 localStorage 进行更改后简单地重定向:

    displayFolder(folderId) {
        this.foldersService.getFoldersById(folderId).subscribe(
          foldersConsult => {
            this.foldersConsult.push(foldersConsult);
            localStorage.setItem('foldersConsult', JSON.stringify(this.foldersConsult));
            this.router.navigate(['/folder/consult']);
          });
      };
    

    或者如果你想更灵活,你可以使用Resolver

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-03-20
      • 2017-02-10
      • 2021-11-23
      • 1970-01-01
      • 1970-01-01
      • 2023-03-08
      • 2023-02-12
      • 1970-01-01
      相关资源
      最近更新 更多