Angular和Angular Material 15
您可以将matTooltip
添加到子元素中,最合理的情况是在材料按钮中,即包含按钮文本的span
或具有材料图标的mat-icon
。
当使用Material按钮时,禁用按钮默认具有应用样式pointer-events: none
;请参阅全局材料按钮样式:
图标按钮:
.mdc-icon-button:disabled,
.mat-mdc-icon-button[disabled] {
pointer-events: none;
}
普通按钮:
.mdc-button[disabled],
.mat-mdc-button[disabled] {
pointer-events: none;
}
如果您希望在悬停按钮时显示工具提示,则需要取消子元素的此设置。可以通过以下方式轻松解决:
<button #myIconButton mat-icon-button [disabled]="!isAllowedDelete">
<mat-icon [style.pointer-events]="'all'"
matTooltip="You are not allowed to delete this item"
[matTooltipDisabled]="!myIconButton.disabled">delete</mat-icon>
</button>
<button #myButton mat-button [disabled]="!isAllowedDelete">
<span [style.pointer-events]="'all'"
matTooltip="You are not allowed to delete this item"
[matTooltipDisabled]="!myButton.disabled">delete</span>
</button>
或者,如果您想将其放在样式表中:
button[disabled] span.mat-mdc-tooltip-trigger
button[disabled] mat-icon.mat-mdc-tooltip-trigger {
pointer-events: all;
}
在我看来,这比将按钮包装在元素中要好,现在您可以直接使用按钮的“禁用”状态(
myButton.disabled
)禁用/启用工具提示,而无需向DOM添加任何其他包装器或元素。
在此 Stackblitz 中查看一个可工作的示例。