0

我有一个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);
)

它奏效了。但我想知道我是否遗漏了什么,我可以避免使用这种解决方法。

先感谢您。

4

0 回答 0