【问题标题】:Custom component FormControl take error when added new array element to form将新数组元素添加到表单时,自定义组件 FormControl 出错
【发布时间】:2020-05-28 02:23:42
【问题描述】:

也许有人帮助我。我在表单中显示组件,我将 formGroup 对象从 formArray 传输到子组件。

但是当我向 formArray 添加一个新对象时,我收到一个错误“ERROR Error: control.registerOnChange is not a function”,但一切正常。

我创建了 stackblitz https://stackblitz.com/edit/angular-fceyyq 也许有人会告诉我可能是什么问题,也许方法不对?

如果我在没有 ControlValueAccessor 的情况下创建组件并使用 formGroup 传输到组件对象,则不再有错误。 但我不确定什么是正确的,因为我们正在从子组件管理父对象。

【问题讨论】:

  • 你有let control of addressArray,因为你有一个FormGroups的FromArray,控件是一个FormGroup,自定义表单控件是用于FormControls,而不是FormGroups。看看stackoverflow.com/questions/60163266/…中的讨论

标签: angular angular8 angular-components


【解决方案1】:

使用ng-container 而不是建议的div here 因为使用*ngFor 会创建一个隐式模板。

<ng-container *ngFor="let control of form.get('address'); let i = index">
   <app-address [formControl]="control"></app-address>
</ng-container>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-05-20
    • 1970-01-01
    • 2013-12-27
    • 1970-01-01
    • 2012-09-23
    • 1970-01-01
    • 1970-01-01
    • 2023-04-04
    相关资源
    最近更新 更多