javascript - 如何以 Angular react 形式迭代 FormGroup 中的 FormArray

标签 javascript angular typescript angular-reactive-forms

我的表单结构如下图所示

-MainForm(ParentForm)
 -FormGroup(MedicineGroup)
  -FormArray(MedicineArray)

我想迭代 MedicineArray 为此,我做了一些研究并编写了以下代码

for (let control of soForm.get('MedicineGroup').controls['MedicineArray'].controls) {
    medObj.name.push(control.controls['MedName'].value);
  }

代码运行良好,但我收到一条警告,上面写着

Property 'controls' does not exist on type 'AbstractControl'.

是否有任何其他或更好的方法来迭代 FormGroup 中的 FormArray?

最佳答案

您可以尝试使用 ['controls'] 而不是 .controls:

for (let control of soForm.get('MedicineGroup')['controls']['MedicineArray']['controls']) {
    // ...
}

另一种选择是:

const formArray = soForm.get('MedicineGroup.MedicineArray') as FormArray;
console.log(formArray);

使用点表示法访问嵌套控件是一种很好的做法。

关于javascript - 如何以 Angular react 形式迭代 FormGroup 中的 FormArray,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54284647/

相关文章:

javascript - 访问字符串列表以推送或更新到模型中的列表

javascript - 根据值生成彩虹色

javascript - jquery默认执行Error段-Servlet

带有Ivy的Angular 8如何验证是否已使用

json - 如何使用 papa-parse-angular2

javascript - Socket.io-client - TypeError : socket_io_client_1. 默认不是函数

javascript - 尝试实现 flexbox 来填充网页的剩余高度,但在 chrome 中不起作用

javascript - 如何在 AngularJS 中循环遍历值表

Angular2 为什么使用@Output 而不是@Input 进行回调

javascript - 无法更新 Angular 版本