【发布时间】:2018-07-23 21:33:26
【问题描述】:
我正在使用 Angular 5,我正在构建一个项目列表,其中包含一些过滤列表的按钮。当其中一个过滤器隐藏列表中的每个项目时,我正在努力做的是显示“未找到数据”类型的消息。
基本上是这样的:
过滤器按钮
<div padding>
<ion-segment [(ngModel)]="filter" (ionChange)="onFilterChange()">
<ion-segment-button value="all">
All
</ion-segment-button>
<ion-segment-button value="2">
Pending
</ion-segment-button>
<ion-segment-button value="1">
Confirmed
</ion-segment-button>
</ion-segment>
</div>
列表
<ion-list *ngFor="let r of (reservations | async)">
<ion-card *ngIf="(filter == 'all' || filter == r.confirmed)">
<ion-item>
Item
</ion-item>
</ion-card>
</ion-list>
注意:我使用的是异步管道,因为数据来自 Firebase 实时数据库。
所以,我所有的项目都处于待处理状态(已确认:2),所以当我点击“已确认”按钮时,列表中的所有项目都被隐藏了,这是完美的。但是如何显示“未找到数据”消息而不是空列表?
我尝试了 else 条件,但收到多条“未找到数据”消息(每个隐藏项目一条):
<ion-list *ngFor="let r of (reservations | async)">
<ion-card *ngIf="(filter == 'all' || filter == r.confirmed); else empty;">
<ion-item>
Item
</ion-item>
</ion-card>
</ion-list>
<ng-template #empty>
No data found...
</ng-template>
那么实现这一目标的正确方法是什么? 谢谢。
【问题讨论】:
-
<ion-card *ngIf="filter != 'all' && filter != r.confirmed"> <ion-item> No Data </ion-item> </ion-card> -
尝试在离子列表中移动
-
@mast3rd3mon 这样它给了我重复的“无数据”,每个隐藏的列表项一个......
-
@BorisLobanov 是的,我试过了,但结果是一样的......
-
这不是
else的好用例。只需使用<div *ngIf ="(reservations | async).filter(f)">None</div>
标签: javascript angular angular-ng-if