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

Angular 13中*ngFor内Mattooltip失效且复选框禁用问题求助

解决Angular 13中mat-checkbox添加条件MatTooltip后禁用且tooltip不显示的问题

正确模板写法示例

先确保条件绑定语法正确,避免和disabled属性混淆:

<mat-checkbox 
  *ngFor="let sample of sampleList"
  [matTooltip]="sample.sampleAvailability.name === 'Checked-in' ? 'This sample is available' : 'This sample is checked out'"
>
  {{ sample.label }}
</mat-checkbox>

排查关键问题点

  • 检查模块导入完整性
    必须在当前组件所属的NgModule中同时导入MatTooltipModule和MatCheckboxModule,缺一不可:

    import { NgModule } from '@angular/core';
    import { MatCheckboxModule } from '@angular/material/checkbox';
    import { MatTooltipModule } from '@angular/material/tooltip';
    // 其他必要模块导入
    
    @NgModule({
      imports: [
        MatCheckboxModule,
        MatTooltipModule,
        // ...其他模块
      ],
      declarations: [YourComponent]
    })
    export class YourModule { }
    
  • 验证条件逻辑准确性

    • 临时在模板中添加{{ sample.sampleAvailability.name }},确认该字段实际值是否和判断的'Checked-in'完全匹配(注意大小写、空格等细节)。
    • 如果sampleAvailability可能为undefined或null,要添加空值保护避免表达式报错:
      [matTooltip]="sample.sampleAvailability?.name === 'Checked-in' ? 'This sample is available' : 'This sample is checked out'"
      
  • 排查是否误绑定disabled属性
    很多情况是不小心把tooltip的条件写到了[disabled]上,导致复选框被禁用。检查模板中是否存在类似[disabled]="sample.sampleAvailability.name === 'Checked-in'"的错误绑定。

  • 查看浏览器控制台报错
    打开开发者工具Console面板,检查是否有模板解析错误、模块未找到等报错,这类错误会直接导致组件功能异常。

  • 确认版本兼容性
    Angular 13必须搭配13.x版本的Angular Material,版本不匹配会引发组件行为异常。可以在package.json中检查@angular/material的版本是否为^13.x.x。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.06 14:35:36