我使用具有许多不同FormGroup的FormArray来处理复杂的表单。在一种类型的formGroup中,我可以控制百分比值。我需要将其值显示并编辑为1-100中的数字,并以配额值0.1-1保存所有表单(发布到服务器)。我可以在存储功能中进行一些更改,但是如果需要更改为formGroup,则必须检查FormArray中的所有项目。当我获得patchValue的值以形成表单时,我也需要对其进行更新。我可以以反应形式改变控件中的视图和值吗?
简单的方法,使用[ngModel]和(ngModelChange)
<input [ngModel]="form.get('percent').value"
(ngModelChange)="this.form.get('percent').setValue((+$event)/100)
[ngModelOptions]="{standalone:true}">
嗯,这是用于fomControl的,但是由于您有一个formArray,我想您需要具有一个返回formControl的函数
getControl(index:number)
{
return (this.form.get('nameOfArray') as FormArray)
.at(index)
.get('percent')
}
并使用[ngModel]="getControl(i).value"
和(ngModelChange)="getControl(i).setValue((+$event)/100)
记住,即使没有输入,formControl和formArray也存在