Это используемая пользовательская директива,
constructor(
private el: ElementRef,
private renderer: Renderer
) { }
@HostListener('mouseover') onHover() {
const offWidth = this.el.nativeElement.offsetWidth;
const scrollWidth = this.el.nativeElement.scrollWidth;
if(offWidth < scrollWidth) {
this.renderer.setElementAttribute(this.el.nativeElement, 'matTooltipDisabled', false);
console.log("enable tooltip");
} else {
this.renderer.setElementAttribute(this.el.nativeElement, 'matTooltipDisabled', true);
console.log("disable tooltip");
}
}
Это не работает. Наконечник коврика всегда включен. Атрибут корректно обновляется до true и false, но подсказка всегда отображается.
<input
appMyCustomDirective
class="testclass"
name="testval"
id="testid"
[(ngModel)]="testval"
type="text"
autocomplete="off"
[matTooltip] = "testval"
matTooltipClass = "tooltip"
matTooltipPosition = "above"
/>