【发布时间】:2019-01-20 21:43:56
【问题描述】:
我有一个 Angular 组件,在它的模板中我放置了一个 Angular Material 按钮,例如 <button #myButton mat-button></button>。
现在我想做的是在我的代码中获取这个按钮,生成一个 Observable,当按钮被点击时发出,然后愉快地用这个 Observable 做我需要做的任何事情。
第一件事:我使用@ViewChild 和下面的代码来控制按钮
@ViewChild('myButton') myButton: MatButton;
我将变量的类型指定为MatButton,因为它实际上就是那种类型。
最后是我的问题。我想使用我常用的方法,即在ngAfterViewInit 方法中使用fromEvent(this.myButton.elementRef.nativeElement, 'click')。不幸的是,我收到错误Invalid event target。稍微挖掘一下,我发现MatButton 没有属性elementRef,但它有一个名为_elementRef 的属性。从开头的下划线看,这听起来像是一个私有属性,但我没有找到更好的方法来创建一个从 MatButton 指令开始并使用 RxJS 的 fromEvent 函数的 Observable。
任何建议都将不胜感激。
【问题讨论】:
标签: angular rxjs angular-material