我注意到指令matTooltip在禁用的按钮上不起作用.我怎样才能做到这一点呢?

示例:

<button mat-raised-button [disabled]="true" matTooltip="You cannot delete that">
  <mat-icon>delete</mat-icon>
</button>

对于启用的按钮,它可以完美地工作:

<button mat-raised-button [disabled]="false" matTooltip="You cannot delete that">
  <mat-icon>delete</mat-icon>
</button>

推荐答案

这不起作用,因为它是由mouseenter事件触发的,对于禁用的元素,大多数浏览器不会触发该事件.解决方法是将matTooltip添加到父元素:

<div matTooltip="You cannot delete that" [matTooltipDisabled]="!isButtonDisabled()">
    <button mat-raised-button [disabled]="isButtonDisabled()">
        <mat-icon>delete</mat-icon>
    </button>
</div>

上面的例子假设有一种方法可以确定按钮是否应该被启用.使用matTooltipDisabled时,仅当按钮被禁用时,工具提示才会显示.

参考资料:

Angular相关问答推荐

PrimeNG侧栏清除primeNG消息.为什么?

在Angular中将路由解析器提供程序和组件提供程序相结合

按Angular 从组件的 bootstrap 选项卡中删除活动类

AG网格Angular 快捷菜单调用函数

Angular 如何观察DOM元素属性的变化?

如何在Primeng中实现自定义排序

RxJS轮询+使用退避策略重试

如何在 Angular14 中创建带有验证的自定义输入组件?

无法在 Angular 中使用 CryptoJS 正确加密

Angular 13 中