我想在我的Angular应用程序中制作自定义按钮组件,我有一种实现点击的方法,以下是代码:
export class MyButtonComponent {
@Input() active: boolean = false;
@Output() btnClick: EventEmitter<MouseEvent> = new EventEmitter<MouseEvent>();
@HostListener('click', ['$event'])
public async onClick(event: MouseEvent) {
this.active = true;
await this.btnClick.emit(event);
this.active = false;
}
}
问题在于,当用户点击按钮时,“active”将变为“true”并执行事件,但是在等待事件完成之前,“active”将变为“false”。我希望在事件完全执行时将“active”设置为“false”。
我该如何解决这个问题或如何在emit方法中添加回调?
this.btnClick.pipe(filter(event => !!event)).subscribe(() => this.active = false);
- Alex