具有不同值的角反应形式输入视图

问题描述 投票:0回答:1

我使用具有许多不同FormGroup的FormArray来处理复杂的表单。在一种类型的formGroup中,我可以控制百分比值。我需要将其值显示并编辑为1-100中的数字,并以配额值0.1-1保存所有表单(发布到服务器)。我可以在存储功能中进行一些更改,但是如果需要更改为formGroup,则必须检查FormArray中的所有项目。当我获得patchValue的值以形成表单时,我也需要对其进行更新。我可以以反应形式改变控件中的视图和值吗?

angular reactive-forms
1个回答
0
投票

简单的方法,使用[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也存在

© www.soinside.com 2019 - 2024. All rights reserved.