在模板变量中明确指定异步管道获取结果

时间:2017-04-19 13:46:10

标签: angular

是否可以将async管道提取的值明确指定给模板变量?

在以下示例中,为userList分配了获取值的length。我希望它取而代之的是取得的结果。我还想根据获取结果的长度显示用户列表或noResult模板消息。

<ng-template #noResult> <p> No result to display</p> </ng-template>
<div *ngIf="(userList$ | async)?.length; else noResult; let userList">

 <ul *ngFor="let user of userList">
  <li> {{ user.email }} </li>
 </ul>

</div>

1 个答案:

答案 0 :(得分:5)

来自Angular 4的

你可以做到这一点

<div *ngIf="(userList$ | async) as userList; else noResult;">
  <div *ngIf="userList?.length">
    <ul *ngFor="let user of userList">
      <li> {{ user.email }} </li>
    </ul>
  </div>
</div>

在线演示: https://plnkr.co/edit/5lvn5kCDHtsP2PlTaRmo?p=preview