【问题标题】:Angular reactive form Input view with different value具有不同值的角反应形式输入视图
【发布时间】:2020-01-20 19:03:33
【问题描述】:

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

【问题讨论】:

  • 您想将控件的值显示为numbers 1-100 并希望在db 中存储为percentage?你只有1个这样的字段吗?并请附上您的formArray 代码
  • 我认为你不能混合反应形式和 ngModel。再次感谢。

标签: angular angular-reactive-forms


【解决方案1】:

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

【讨论】:

猜你喜欢
  • 2018-08-05
  • 1970-01-01
  • 2015-09-23
  • 1970-01-01
  • 2020-03-11
  • 1970-01-01
  • 2019-06-04
  • 2019-05-24
  • 1970-01-01
相关资源
最近更新 更多