Событие предотвращение по умолчанию при нажатии кнопки «ион» не работает - PullRequest
0 голосов
/ 26 августа 2018

Я использую 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

Любая помощь приветствуется.

1 Ответ

0 голосов
/ 27 августа 2018

Попробуйте ввести event.preventDefault(); в верхней части функции.Иногда уже слишком поздно, и программа уже провела мероприятие.

...