Я использую Ionic 4, и я сделал директиву, предотвращающую щелчки по компонентам, если применимо какое-то условие.
@Directive({
selector: '[appDisable]'
})
export class DisableDirective {
@Input() ifTruthy: boolean = false;
@HostListener('click', ['$event']) clickEvent(event: Event): boolean {
if (this.ifTruthy) {
console.log('Preventing click');
console.log('This should prevent further clicks from happening?');
event.preventDefault();
event.stopPropagation();
return false;
}
return true;
}
constructor(
private element: ElementRef,
protected renderer: Renderer2) {
}
}
Затем на моей кнопке:
<ion-button appDisable [ifTruthy]="1 === 1" (click)="presentAlert()">Disabled</ion-button>
Это не работает, это работает, если я перемещаю click () на верхний элемент (из-за stopPropagation), я хочу знать, почему это не работает.
Я создал stackBlitzz
Любая помощь приветствуется.