ngIf else with angular 离子模板

ngIf else with angular Ionic template

我想了解 ngIf/else 是如何工作的,也许这很愚蠢,但我不明白。 基本上,如果我的数组已满(这工作正常)我需要打印一些内容,如果我的数组为空(这不起作用)则需要打印一些其他内容。 这是我的数组,其中包含过滤后的 json 数组中的元素。

public gbrumdatafiltered : Array<any> = [];

这是代码。 正如我所说,当 gbrumdatafiltered 中有数据时,它会打印“true”,因此条件有效,但如果数组为空(根据屏幕截图)则什么也不会发生。

<ion-card *ngFor="let gbrumd of gbrumdatafiltered">
 <div *ngIf="gbrumd?.length; then gbrumdknown; else gbrumdunknown"></div>
  <ng-template #gbrumdknown>true</ng-template>
  <ng-template #gbrumdunknown>false</ng-template>
</ion-card>

我什至尝试过一些变体,例如:

    <div *ngIf="gbrumdatafiltered?.length; then gbrumdknown; else gbrumdunknown"></div>
--
    <div *ngIf="gbrumdatafiltered?.length; then gbrumdknown; else gbrumdunknown"></div>
--
    <div *ngIf="gbrumdatafiltered.length > 0; then gbrumdknown; else gbrumdunknown"></div>

但还是不行

这是cconsole.log(this.gbrumdatafiltered);命令

所以,数组是空的。

你这里只是有一个逻辑错误,你需要你的条件更高一点...

<ng-container*ngIf="gbrumdatafiltered?.length; then gbrumdknown; else gbrumdunknown">
</ng-container>
<ng-template #gbrumdknown>
 <ion-card *ngFor="let gbrumd of gbrumdatafiltered">
  <div>true</div>
 </ion-card>
</ng-template>
<ng-template #gbrumdunknown>
 <ion-card *ngIf="submitted">
  <div>false</div>
 </ion-card>
</ng-template>