我有一个反应式表单,其中有一个单选按钮组,该单选按钮组对一个表单变量起作用,直到我重置表单为止。当我重置表格时,两个收音机都被取消选择。
<mat-radio-group aria-label="Select an option" formControlName="IsUnderLc">
<mat-radio-button value="true" [checked]="workTransactionForm.controls['IsUnderLc'].value == true">
Under LC
</mat-radio-button>
<mat-radio-button value="false[checked]="workTransactionForm.controls['IsUnderLc'].value == false">
Collection
</mat-radio-button>
</mat-radio-group>
我想保留一个选择,我什至尝试将这些值修补回去,并在FormGroup中提供默认值,但无济于事。
this.workTransactionForm.reset();
this.workTransactionForm.controls.IsUnderLc.setValue(true);
重置表单后,是否有任何方法可以为表单控件设置值?
答案 0 :(得分:1)
您可以在重置功能中为表单控件传递(新)值。这将重置表格并保留/重新添加您传递的值。 因此您可以使用:
this.workTransactionForm.reset({IsUnderLc: true});
或者如果您想保留一些值:
const currentValue = this.workTransactionForm.get('IsUnderLc').value;
this.workTransactionForm.reset({IsUnderLc: currentValue});
答案 1 :(得分:0)
更改html代码后,我可以解决此问题 来自
<mat-radio-button value="false" [checked]="workTransactionForm.controls['IsUnderLc'].value == false">
Collection
</mat-radio-button>
收件人
<mat-radio-button value="false>
Collection
</mat-radio-button>
然后将其重新绑定到.ts文件中,例如
this.workTransactionForm.controls.IsFresh.patchValue(false);
this.workTransactionForm.controls.IsUnderLc.patchValue(false);