首页 > 解决方案 > 使用 as 关键字,然后在同一 ngIf 中使用长度

问题描述

我想避免多次同步操作,并想用“AS”关键字分配异步属性并进一步检查长度。我尝试了以下代码,但它给出了错误:

<div *ngIf="(selectedNames$ | async as selectedNames)?.length"> {{selectedNames}}</div>

我也尝试了另一种选择,但仍然是一样的:

<div *ngIf="((selectedNames$ | async) as selectedNames)?.length"> {{selectedNames}}</div>

括号似乎不在正确的位置。甚至可能吗?

标签: angular

解决方案


获得所需结果的一种方法是使用两个*ngIf指令。第一个应用于 an ng-container,定义selectedNames变量。第二个将*ngIf条件 withselectedNames.length应用于div元素:

<ng-container *ngIf="(selectedNames$ | async) as selectedNames">
  <div *ngIf="selectedNames.length">
    {{selectedNames | json}}
  </div>
</ng-container>

请参阅此 stackblitz以获取演示。


推荐阅读