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

Angular 4中用ngFor遍历对象数组并在Angular Material网格展示

我来帮你搞定这个Angular Material网格展示的问题~你当前的代码有两个核心问题需要修正:

  • 你把*ngFor指令放在了<mat-grid-list>标签上,这会导致每一条联系人数据都生成一个完整的3列网格,而不是在同一个网格里生成多个瓷砖,完全不符合你的需求。正确的做法是把*ngFor移到<mat-grid-tile>标签上,让每个瓷砖对应一个联系人。
  • 在*ngFor="let i of contacts"里,i已经是contacts数组中的单个对象了,不需要再用contacts[i]来访问属性,直接用i.image、i.name就能拿到对应的值。另外建议把变量名从i改成contact,这样代码语义更清晰,可读性更强。

这里是修正后的完整代码:

<div class="list" *ngIf="listContacts == true">
  <mat-grid-list cols="3" rowHeight="2:1">
    <!-- 把*ngFor移到mat-grid-tile上,变量名改成contact更语义化 -->
    <mat-grid-tile *ngFor="let contact of contacts">
      <div class="card">
        <!-- 用[src]绑定代替插值表达式,更安全符合Angular最佳实践 -->
        <img [src]="contact.image" alt="联系人头像">
        <h2>{{contact.name}}</h2>
      </div>
    </mat-grid-tile>
  </mat-grid-list>
</div>

额外提个小细节:图片的src用[src]属性绑定比src={{}}插值更稳妥,能避免潜在的XSS风险,也是Angular官方推荐的写法哦~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.20 10:23:55