Я использую 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
Любая помощь приветствуется.