【问题标题】:Use Template Input Variables outside of NgFor在 NgFor 之外使用模板输入变量
【发布时间】:2019-04-29 17:57:32
【问题描述】:

一个常见且熟悉的案例:

<div *ngFor="let hero of heroes$ |async">
  <span>{{hero.name}}</span>
</div>

我的问题是,当 heroes 不是 Heros 数组的 Observable 而是单个 Heros 的 Observable 时,如何具有相同的行为

<div *???="let hero of hero$ |async">
  <span>{{hero.name}}
</div>

【问题讨论】:

  • 无需重复&lt;span&gt;{{(hero$ | async)?.name}}&lt;/span&gt;
  • 如果我在 Hero 类中有 15 个属性会怎样?订阅 observable 15 次?
  • &lt;div *ngIf="(hero$ | async) as hero"&gt;{{hero.name}}{{hero.id}}{{hero.something}}&lt;/div&gt;

标签: angular ngfor


【解决方案1】:

您不需要使用*ngFor 指令来解析单个对象,而是使用变量将异步属性分配给它并在 as 中使用该替代变量

<ng-container *ngIf="hero$ | async as hero">
    {{hero.name}}
</ng-container>

https://stackblitz.com/edit/angular-async-pipe-with-ngif-else 的工作示例

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-11-02
    • 1970-01-01
    • 1970-01-01
    • 2018-01-19
    • 2018-10-26
    • 1970-01-01
    • 2021-08-14
    • 1970-01-01
    相关资源
    最近更新 更多