【问题标题】:How to update a FormControl inside of FormArray in Angular 2+?如何在 Angular 2+ 中更新 FormArray 内的 FormControl?
【发布时间】:2018-06-23 09:18:17
【问题描述】:

我可以像这样更新 FormGroup 中的 FormControl:

form.setControl('happyControl',
   new FormControl('happy value', Validators.required)
);

但在 FormArray 中,我无法编辑选择的 FormControl。

在 myForm 控件 > FormArray > FormGroup 中,我无法设置控件。我的代码是这样的:

let firstFormGroup = form.controls.myFormArrayControl.controls;

firstFormGroup[0].setControl('happyControl', 
    new FormControl('sad value', Validators.minlength(2))
);

如何访问和更新控件?

【问题讨论】:

  • 当您尝试更新特定索引处的控件时是否有效,例如:firstFormGroup[0].setControl('happyControl'... ?
  • @R.Richards 我试过像你写的那样,我可以看到 FormGroup 对象中的值,但视图没有更新。我无法理解。我试图解决这个问题 3 天...

标签: angular angular-reactive-forms formarray formgroups


【解决方案1】:

您必须致电updateValueAndValidity()。

我是这么认为的,但如果您发布完整的代码会有所帮助:

firstFormGroup[0].updateValueAndValidity()

【讨论】:

  • 我尝试了您的建议,但没有成功。当我使用 setValidators 并在 updateValueAndValidity 方法之后,它起作用了。这是 plunkr 链接(我不知道为什么它不起作用:) plnkr.co/edit/XVNhljhiK2LYlKqNsAfc
  • 是的,您必须在调用updateValueAndValidity之前设置值。
  • 如果您查看链接,您可以看到我已经在 116 行中设置了它。如果我还有其他错误,请分叉或告诉我该怎么做才能解决这个问题。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2018-12-03
  • 2017-02-15
  • 2016-11-05
  • 2021-10-10
  • 2018-05-20
  • 2018-05-02
  • 1970-01-01
相关资源
最近更新 更多