使用Angular的动态反应形式

时间:2018-07-24 15:14:16

标签: angular

我创建了一个动态反应形式,除了FormArray的第一项显示为null之外,它都可以正常工作。

电流输出 Current Output

预期输出 Expected Output

该数组的后续项生成良好。而且,如果我在生成其他项目后删除了第一项,则数据将正确保存。

我在控制台上看到以下错误,并尝试寻找解决方案,但是根据网络上的各种答案,我已经正确地做到了。

ERROR Error: Cannot find control with path: 'contentBoxes -> 0 -> contentType'

Unable to display error. Open your browser's console to view.

Angular is running in the development mode. Call enableProdMode() to enable the production mode.

ERROR Error: Cannot find control with path: 'contentBoxes -> 0 -> revenueShare'

Unable to display error. Open your browser's console to view.

可以在此处查看和运行代码:https://stackblitz.com/edit/angular-ui5n8c

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

您在索引0处放置了该函数的引用:this.buildGroup;当然应该是:this.buildGroup()。这样,将调用该函数并返回实际对象。所以你的问题是,函数没有被执行。

所以总结一下:

```

  buildArray(): FormArray {
    this.contentBoxes = this._fb.array([
      this.buildGroup() // <---- notice the () I added, these are needed!
      //this._fb.control('')
    ]);
    return this.contentBoxes;
  }

```