angular 中的按钮单击事件问题

Button click event issue in angular

我正在尝试将 "disable option" 应用到我的自定义按钮,但是当我将按钮设置为禁用时,点击事件仍然有效。如果按钮启用,我只需要点击事件,如果它被禁用则不需要。

代码:

<myngbutton [disabled]="disabled3" (click)="alertMsg()">Save 3</myngbutton>

由于您的 myngbutton 不是 html 原生元素,因此它不会像原生按钮那样工作。它被视为具有父类型 HtmlElement 的自定义元素。

disabled html 属性仅适用于 W3School documentation 中描述的元素。这意味着如果您希望您的组件像按钮一样工作,那么您将需要对其进行编程。或者在您的组件中使用原生 <button>

这是一个例子:

<!-- Won't enter the alertMsg method if it is disabled -->    
<myngbutton [disabled]="disabled3" (click)="!disabled3 && alertMsg()">Save 3</myngbutton>

问题是,您订阅的 click 事件不是按钮元素上的 click 事件,而是 myngbutton 元素上的单击事件。 您需要在 myngbutton 组件上添加一个事件发射器,该发射器在 button 元素点击时发射:

myngbutton.component.ts:

@Component({...})
export class MyngbuttonComponent {
   [...]

   @Output() onClick = new EventEmitter();
   [...]

}

myngbutton.component.html:

<button [...] (click)="onClick.emit()">[...]</button>

app.component.html:

<myngbutton [disabled]="disabled1" (onClick)="alertMsg()">Save 1</myngbutton>