angular - 在 Angular 中创建动态 react 表单时无法将变量设置为 FormControl 名称

标签 angular angular-reactive-forms formarray

我正在 Angular 中创建动态响应式表单。但是在下面的代码中,level.name 没有被接受,因为编译器不允许在 group() 中提供变量。它只允许固定值,如州、城市等,而不是 level.name 变量,其中 level 是一个具有名称字段的对象......

this.countryNextLevelsBeforeMan.forEach(**level** => {
  let l2 =<FormArray> this.l1FormGroup2.controls["l2"]; 
  l2.push(this.formBuilder.group({
    **level.name** : null   --> compilation error on this line as variable not getting allowed
  }))
});

在组方法中,我想将控件名称作为变量 (level.name)。在 for 循环中,如果级别是 {"name": "State", "id": 2} 那么我想像下面这样设置它,

l2.push(this.formBuilder.group({
        **State** : null    --> No compilation error if we give fixed value
     }))

(而不是“州”,我希望它由 level.name 动态分配,因为 level.name 可以是城市、街道等)

请帮忙!!!

最佳答案

试试这个:

this.countryNextLevelsBeforeMan.forEach(level => {
  let l2 =<FormArray> this.l1FormGroup2.controls["l2"]; 
  l2.push(this.formBuilder.group({
    [level.name]: null,
    [level.id]: []
  }))
});

关于angular - 在 Angular 中创建动态 react 表单时无法将变量设置为 FormControl 名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/62688711/

相关文章:

Angular 2 : Reloading routed module not fetching js and css files

javascript - 需要在多个输入中添加谷歌自动完成框

javascript - 使用延迟加载模块的路由不适用于参数

angular - 如何创建嵌套的表单组,基于模型的 react 表单

angular - 如何在表单中正确预填写下拉列表?

Angular 7 react 形式无法读取未定义的属性 'controls'

angular - FormGroup 和 FormArray 有什么区别?什么时候用什么?

node.js - 错误提示没有 package.json,但它位于当前目录中

javascript - Angular 数组 : Creating a table form from 2-dimensional Javascript array

angular - 迭代 FormArray 以显示表单字段