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

Angular 12 使用*ngIf搭配mat-icon、mat-content时图标不显示问题排查

问题原因&修复方案

你遇到的异常是两个写法错误导致的:

  • 错误1:matTooltip输入属性没有做绑定
    你当前的写法matTooltip={{element.date}}没有加方括号,Angular会将其识别为静态字符串属性,当变量解析异常时会直接导致整个mat-icon组件渲染失败,出现空白。
  • 错误2:使用了非标准的mat-content标签
    Angular Material没有提供通用的<mat-content>文本容器标签,部分版本下该标签的渲染异常会影响同单元格内其他组件的正常展示。

修复后的状态列代码

<ng-container matColumnDef="status">
  <th mat-header-cell *matHeaderCellDef> 状态 </th>
  <td mat-cell *matCellDef="let element">
    <mat-icon 
      *ngIf="element.status === 'Yes'" 
      [ngStyle]="{'color':'green'}" 
      matTooltipPosition="right"
      matTooltipClass="mattooltip" 
      [matTooltip]="element.date"
    >done_outline</mat-icon>
    <mat-icon 
      *ngIf="element.status === 'No'" 
      [ngStyle]="{'color':'orange'}" 
      matTooltipPosition="right"
      matTooltipClass="mattooltip" 
      [matTooltip]="element.date"
    >report_problem</mat-icon>
    <span *ngIf="element.status === 'Not Applicable'">N/A</span>
  </td>
</ng-container>

额外优化建议

建议你把判断条件的==替换为严格相等===,避免因隐式类型转换出现意料之外的判断错误。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.06 20:45:04