Я создаю компонент Angular, который обертывает собственный <button>
элемент с некоторыми дополнительными функциями. Кнопки не запускают событие клика, если они отключены, и я хочу реплицировать те же функции. т.е. при условии:
<my-button (click)="onClick()" [isDisabled]="true">Save</my-button>
Есть ли способ my-button
предотвратить onClick()
от вызова?
В Angular вы можете прослушивать событие щелчка хоста таким образом и прекратить распространение события:
//Inside my-button component
@HostListener('click', ['$event'])
onHostClick(event: MouseEvent) {
event.stopPropagation();
}
Это предотвращает появление пузырьков в элементах предка, но не останавливает вывод встроенного (click)
вывода на один и тот же элемент узла.
Есть ли способ сделать это?
Изменить 1:, как я решаю это сейчас, используя другой вывод, называемый "onClick", и потребители должны знать, использовать "onClick" вместо "click". Это не идеально.
Изменить 2: События события, которые начинаются с элемента <button>
, успешно завершены. Но если вы поместите элементы внутри тега кнопки, как я есть, щелкните события по этим целям, распространяйте их до хоста. Hm, должна быть возможность обернуть кнопку в другом элементе, который останавливает распространение...