【问题标题】:Angular2 - show data before load from http [duplicate]Angular2 - 从http加载之前显示数据[重复]
【发布时间】:2017-10-29 17:33:54
【问题描述】:

我在从服务器异步加载数据时遇到问题。视图中没有任何数据,因为渲染是在加载之前。 这是我的代码: app.component.ts:

    user: User = new User()
    ngOnInit() {
    this.userService.getUser(1).then(usr => {
      this.user = usr;
    }).catch((error: any) => {

    });
  }

app.component.html:

<p>{{user.name}}</p>

我认为数据会动态变化。问题出在哪里?谢谢

【问题讨论】:

  • 你能试试&lt;p&gt;{{user?.name}}&lt;/p&gt;吗?
  • 是的,结果是一样的。我没有看到用户名
  • 在异步调用中分配后尝试记录this.user并向我们展示内容
  • 您是否更改了此\父组件中的DetectionStrategy
  • @jonrsharpe,只是想指出这与欺骗建议中的问题不完全一样。如果您查看 OP 在以下答案中的评论。数据结构已更改,因此显然 user 不再具有属性 name ;)

标签: angular


【解决方案1】:

尝试使用 elvis 运算符,这可能会有所帮助

<p>{{user?.name}}</p>

或者甚至可以尝试使用 ngIf

<div *ngIf = "user">
    user.name
</div>

【讨论】:

  • 这不是好的解决方案。我没有看到用户名。我为商店用户和 getter 和 setter 方法创建了服务,我设置断点,首先调用 get 方法,然后调用 set 方法
  • 用户登录组件检查了吗?
  • 对不起,问题出在我从服务器获取的数据中。数据结构已更改,我不知道。现在可以使用了
  • @bluray 那你为什么接受这个答案?它不能解决问题。
【解决方案2】:
<p>{{user.name}}</p>

<div *ngIf="user">
    {{user.name}}
</div>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-05-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多