Angular 如何在“角度材质”单选按钮上引发单击事件?

Angular 如何在“角度材质”单选按钮上引发单击事件?,angular,angular-material,Angular,Angular Material,我想通过按键触发点击事件,我有一个简单的组件: <mat-radio-group [(ngModel)]="selected" aria-label="Select an option"> <mat-radio-button #first value="1">Option 1</mat-radio-button> <mat-radio-button value="2"

我想通过按键触发点击事件,我有一个简单的组件:

<mat-radio-group [(ngModel)]="selected" aria-label="Select an option">
  <mat-radio-button #first value="1">Option 1</mat-radio-button>
  <mat-radio-button value="2">Option 2</mat-radio-button>
</mat-radio-group>
但它不起作用


你就快到了。您可以在
\u inputElement
属性上调用事件,而不是在
\u elementRef
上调用事件。您可以使用函数触发事件,而不是直接调用
click
事件

试试下面的方法

导出类RadioOverview示例{
选中:字符串;
@ViewChild('first',{static:false})matRadioButton:matRadioButton;
构造函数(){
设置超时(()=>{
让event=newmouseevent('click',{bubbles:true});
此.matRadioButton.\u inputElement.nativeElement.dispatchEvent(事件);
}, 1000);
}
}
我修改了你的密码

更新:触发事件侦听器 由于我们正在触发此.matRadioButton.\u inputElement上的事件,因此可以使用RxJS
fromEvent
函数绑定到同一元素的单击事件

试试下面的方法

import{Subject,Observable,fromEvent}来自'rxjs';
从“rxjs/operators”导入{takeUntil};
...
导出类RadioOverview示例实现AfterViewInit、OnDestroy{
选中:字符串;

clickCount:number=0;//谢谢您的回答。您知道如何使单选按钮在此处引发单击事件吗?正如您在示例中看到的,单击计数为0:您可以使用RxJS
fromEvent
函数绑定到
单击事件。我已经更新了答案。当有许多观察者时,这会更容易可以处理。您只需对每个可观察对象执行
.pipe(takeUntil(this.complete$)
,并且在
ngondestory()
中只需一条语句即可:
this.complete$.next()
。使用
unsubscribe()
每个订阅都需要保存在一个变量中并单独取消订阅。
this.matRadioButton._elementRef.nativeElement.click();