You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Angular 6中表单提交数据带[]格式错误的问题及解决方法

问题原因与解决方案

为什么会出现这个问题?

你在使用patchValue给表单赋值时,错误地把每个字段的单个值都包裹在了数组里(例如productTitle: [data.productTitle])。但你的这些表单控件应该都是普通的FormControl(而非用于批量数据的FormArray),所以Angular会把这个数组当作控件的实际值存储,提交到服务器时自然就带着[]格式,而服务器期望的是单个字符串/数值,因此返回了Bad Request错误。

怎么解决?

只需要去掉每个字段值外面的数组包裹,直接传递单个值即可,修改后的代码如下:

this.editFG.patchValue({ 
  productTitle: data.productTitle, 
  productName: data.productName, 
  color: data.color, 
  price: data.price, 
  gurantyMonth: data.gurantyMonth, 
  gurantyCompanyName: data.gurantyCompanyName, 
  catId: data.catId, 
  brandId: data.brandId 
})

额外提醒

如果你的表单中存在需要批量处理的字段(比如多个相同类型的输入项),才需要使用FormArray并传递数组值。但从你的提交数据来看,这些字段都是单个值的输入,所以用普通FormControl+单个值赋值就完全没问题了。

内容的提问来源于stack exchange,提问作者Mr-Programer

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.11 09:21:05