Angular报错:ERROR TypeError: control.setParent is not a function

Angular报错:ERROR TypeError: control.setParent is not a function

这里是定义的 myForm ,字段 imageIds 为数组:

myForm = this.fb.group({
    id: [''],
    title: [''],
    content: [''],
    imageIds: this.fb.array(['']),
});

从详情接口取回数据后,填充到表单里的 imageIds 字段里报错。

let imageIds = this.detail.imageIds;
let newIds = this.myForm.get('imageIds') as FormArray;
if (imageIds) {
  let key : any;
  for(key in imageIds) { 
    // <-- ERROR TypeError: control.setParent is not a function
    newIds.push(imageIds[key]); 
  }
} 

this.noteForm.patchValue({
          id: this.detail.id,
          title: this.detail.title,
          imageIds: newIds.value, // <----  补充数据
 });

错误原因: newIds 是表单组件里的 FormArray 格式,因此push进去的值也应该是 FormControl 格式。
使用 new FormControl(imageIds[key]) 即可。

let imageIds = this.detail.imageIds;
let newIds = this.myForm.get('imageIds') as FormArray;
if (imageIds) {
  let key : any;
  for(key in imageIds) { 
    // <-- 使用 new FormControl() 
    newIds.push(new FormControl(imageIds[key])); 
  }
} 

this.noteForm.patchValue({
          id: this.detail.id,
          title: this.detail.title,
          imageIds: newIds.value, // <----  补充数据
 });

参考内容:

https://blog.csdn.net/u011763994/article/details/78682576
https://stackoverflow.com/questions/51209125/control-setparent-is-not-a-function-when-dymanically-creating-formgroup

关于关注公众号【Web后端技术】获取更多技术知识~

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Web后端技术

您的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值