如何解决角度表单控件中的“找不到名称为__v的表单控件”错误?

时间:2019-03-29 10:55:09

标签: node.js angular mongoose

我在应用程序的后端使用Mongoose。每当我尝试使用API​​保存数据时,都会添加一个名为__v的附加列。我浏览了他们的文档,发现多余的字段用于版本控制。

我的前端应用程序中有一个CRUD。每当我执行get请求时,都会收到以下错误消息。

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字段的创建。但我想保留该字段,并仍然确保没有错误。有人可以帮我吗?

1 个答案:

答案 0 :(得分:1)

使用patchValue()代替setValue()

  

component.ts

this.myForm.patchValue(responce)