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

Angular 10 *ngFor循环如何在第一条消息后停止重复头像div区块

实现方案

你可以直接用Angular *ngFor 内置的 first 上下文变量配合 *ngIf 实现需求,仅需两步修改:

  1. 修改循环声明,引入首项判断变量
    将原有循环代码 <div *ngFor="let msg of msgs"> 调整为:
<div *ngFor="let msg of msgs; let isFirst = first">

isFirst 为布尔值,只有循环到列表第一条数据时返回 true,其余项均为 false。
2. 给消息区块加条件渲染逻辑,仅首项展示头像
你现有代码里已经写好了带头像的.message区块和纯文本的.message.text-only区块,直接加*ngIf判断对应显示即可,修改后的完整代码如下:

<div *ngFor="let msg of msgs; let isFirst = first">
  <!-- 首条消息展示带头像的卡片 -->
  <div class="message" *ngIf="isFirst">
    <div class="photo" style="background-image: url({{LManager_photo}});">
      <div class="online"></div>
    </div>
    <p class="text"> {{msg.Message}} </p>
  </div>

  <!-- 后续消息展示纯文本卡片 -->
  <div class="message text-only" *ngIf="!isFirst">
    <p class="text"> {{msg.Message}} </p>
  </div>
  <p class="time"> 14h58 </p>
</div>

如果后续你需要实现同发送人连续消息仅展示一次头像的逻辑,只需要把判断条件从isFirst替换为「当前消息发送人ID与上一条消息不一致」即可。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 04:36:03