首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >离子3存储定时

离子3存储定时
EN

Stack Overflow用户
提问于 2017-09-28 12:49:25
回答 2查看 81关注 0票数 1

我正在从存储中加载一些json,并打算在页面html模板中显示信息。但是,当我这样做时,在输入页面时会出现错误,这意味着信息(还)是不可用的。

我可能误解了这个概念,但是是否可以对离子存储进行同步调用而不是异步调用?我基本上想检查配置文件是否存储在设备上,如果不是->推回登录屏幕。但是显然,对离子存储的调用太长了,并且在加载页面时还没有解析

page.ts

代码语言:javascript
复制
private user:User;
constructor(private storage: Storage) {   
    storage.get('user').then(data => {
      this.user = data;
    });
  }

page.html

代码语言:javascript
复制
<ion-content padding>
  <div>
    <p>Welcome <b>{{user.name}}</b></p>    
  </div>
</ion-content>

正如我所说的,这将给我一个错误,即user.name是未定义的。当使用ngif指令等待承诺被解析时,它可以工作。但我想我误解了这个概念。

代码语言:javascript
复制
<ion-content padding>
  <div *ngIf="user">
    <p>Welcome <b>{{user.name}}</b></p>    
  </div>
</ion-content>

那么,在加载/输入页面时,如何调用Ionic存储并使数据可用呢?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-09-28 12:59:57

可能误解了这个概念,但是是否可以对离子存储进行同步调用而不是异步调用?

这是一个异步操作,我不认为您能以同步的方式完成这个操作。不管怎样,您的解决方案使用*ngIf="user"是一个很好的解决方案,您还可以添加以下内容

代码语言:javascript
复制
  <div *ngIf="!user">
     //Load a spinner, or a loading bar
  </div>
票数 1
EN

Stack Overflow用户

发布于 2017-09-28 12:52:17

这仅仅是因为需要一些时间才能让用户从存储中获得信息.

另一项建议是避免没有*ng的错误-如果:

代码语言:javascript
复制
private user:User = new User(); // Initialize the user property

constructor(private storage: Storage) {   
    storage.get('user').then(data => {
        this.user = Object.assign(new User, data);
    });
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46469604

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档