Angular: Возможно ли удалить шаблон события "(click)" с помощью директивы? - PullRequest
0 голосов
/ 26 июня 2019

Я создаю шаблон динамически, у меня есть директива, которая проверяет права пользователя (в основном чтение и запись) .

Если у моего пользователя есть только права на чтение, возможно,удалить прикрепленное событие клика?enter image description here

Это код директивы, я попытался добавить прослушиватель click в директиву и остановить событие внутри директивы, но событие click по-прежнему срабатывает.

Это код директивы.enter image description here

1 Ответ

0 голосов
/ 26 июня 2019

Пожалуйста, немного измените свою логику.

Во-первых, вы можете иметь @Input() permissions: string[] как хотите.

Во-вторых, в событии (click) вместо прямого вызова value.clickEvent() вы можете создать вызов метода click, и у вас может быть условие if-else / switch-case, чтобы инициировать событие click или нет. Это тебе поможет.

component.html

<button (click)="handleClick()"></button>

component.ts

// adding new function
handleClick(): void {
   const canRead = this.permissions.some(per => per === 'read');

   if (canRead === false) {
      this.value.clickEvent();
   }
}

Удачного кодирования!

...