如何修复角度表单控件中的“找不到名称为 __v 的表单控件”错误?
Posted
技术标签:
【中文标题】如何修复角度表单控件中的“找不到名称为 __v 的表单控件”错误?【英文标题】:How to fix "Cannot find form control with name: __v" error in angular form control? 【发布时间】:2019-08-20 07:17:12 【问题描述】:我正在使用 Mongoose 作为我的应用程序的后端。每当我尝试使用我的 API 保存数据时,都会添加一个名为 __v
的附加列。我浏览了他们的文档并注意到额外的字段用于版本控制。
我的 Angular 前端应用程序中有一个 CRUD。每当我发出获取请求时,我都会收到以下错误消息。
ERROR Error: Cannot find form control with name: __v.
at FormGroup.push../node_modules/@angular/forms/fesm5/forms.js.FormGroup._throwIfControlMissing (forms.js:3605)
at forms.js:3462
at Array.forEach (<anonymous>)
at FormGroup.push../node_modules/@angular/forms/fesm5/forms.js.FormGroup.setValue (forms.js:3461)
at EmployeeService.push../src/app/services/employee.service.ts.EmployeeService.load (employee.service.ts:54)
at EmployeesComponent.push../src/app/components/employees/employees.component.ts.EmployeesComponent.onEdit (employees.component.ts:47)
at Object.eval [as handleEvent] (EmployeesComponent.html:81)
at handleEvent (core.js:19545)
at callWithDebugContext (core.js:20639)
at Object.debugHandleEvent [as handleEvent] (core.js:20342)
一些建议是删除集合中 __v
字段的创建。但我想保留该字段并仍然确保没有错误。有人可以帮我解决这个问题吗?
【问题讨论】:
可以分享你的组件代码 请发布您的 html 代码。看起来您正在尝试访问变量中从未存在的属性,因此您必须使用 [] 或 ?. 【参考方案1】:使用patchValue()
而不是setValue()
组件.ts
this.myForm.patchValue(responce)
【讨论】:
以上是关于如何修复角度表单控件中的“找不到名称为 __v 的表单控件”错误?的主要内容,如果未能解决你的问题,请参考以下文章