You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular中如何在列表无数据时展示提示消息

实现方案

你可以直接用Angular自带的 *ngIf else 分支语法实现需求,无需额外引入第三方依赖,调整步骤如下:

第一步:修改component.html模板代码

替换原有列表区域的逻辑,新增空状态占位模板:

<app-header [isHidden]="isHiddenProgressBar"></app-header>
<div class="change">
  <button (click)="changeState()" *ngIf="showButton" color="primary" mat-raised-button>Change state</button>
</div>
<div class="list">
  <app-list *ngIf="data?.length > 0; else emptyTpl" [changeObjects]="data"></app-list>
  <!-- 空状态模板 -->
  <ng-template #emptyTpl>
    <div class="empty-notice">列表为空</div>
  </ng-template>
</div>

这里用到的 ?. 是Angular支持的可选链运算符,即便data为null/undefined也不会抛出语法错误,自动判定为条件不成立,展示空状态。

第二步:简化component.ts逻辑

因为模板已经内置了数据非空判断,你可以删掉原来冗余的visible变量维护逻辑,调整后代码如下:

this.data = this.objects;
this.showButton = true;

如果你希望继续保留visible变量做统一状态管理,也可以不修改TS代码,只需要把模板里的判断条件替换成visible即可:

<app-list *ngIf="visible; else emptyTpl" [changeObjects]="data"></app-list>

可选优化

你可以给.empty-notice增加自定义样式,比如设置居中、浅灰色字体、上下边距等,提升空状态的展示效果。

内容的提问来源于stack exchange,提问作者WorkWork

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 00:45:06