我有一个FormGroup
,我们称之为它groupForm
,它包含一个控件,它是一组单选按钮:
this.groupForm = this.formBuilder.group({
radioGroup: ['', Validators.required]
});
我有BehaviorSubject
一个服务,我想用它来设置该组的默认值。我想用一根async
管子来做。所以在我的模板中我做了这样的事情:
<mat-radio-group formControlName='radioGroup' [value]="selection$ | async">
... radio buttons here ...
</mat-radio-group>
然后,在同一个模板中,我使用 groupForm 的有效性来启用按钮。
问题是,尽管在 UI 中显示选择了正确的单选按钮,但表单仍然无效并且按钮显示为禁用。我在代码中尝试了以下解决方法:
this.selection$ = this.selection$.pipe(
tap(value => this.groupForm.get('radioGroup').setValue(value);
)
它奏效了。但我想知道我是否遗漏了什么,我可以避免使用这种解决方法。
先感谢您。