ngIf else with角离子模板

时间:2019-12-09 20:32:28

标签: angular ionic-framework conditional-statements ng-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);命令

enter image description here

因此,数组为空。

1 个答案:

答案 0 :(得分:1)

您这里只是一个逻辑错误,您需要将条件设置得更高一些...

<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>