简体   繁体   English

错误TypeError:将圆形结构转换为JSON->从具有构造函数'FormGroup'的对象开始

[英]ERROR TypeError: Converting circular structure to JSON --> starting at object with constructor 'FormGroup'

I'm setting up Forms on Angular 7 and I got this error every time I enter the correct fields: name, email and phone. 我在Angular 7上设置表单,每次输入正确的字段(名称,电子邮件和电话)时都会收到此错误。 Then I click on the button createEmployee . 然后,我单击按钮createEmployee Normally it will pass to the next page, but this time it didn't and it show me this Error. 通常,它将传递到下一页,但是这次没有,并且向我显示此错误。

This is the html component: 这是html组件:

    <div class="container custom-container">
    <div class="col-md-12">
      <h3 class="mb-3 text-center">Create Employee</h3>

    <form [formGroup]="employeeDetails" (ngSubmit)="addEmployee()">
      <div class="form-group">
          <label>Name</label>
        <input type="text"  formControlName="name"  
    [(ngModel)]="employeeDetails.name" class = "form-control" [ngClass]="{ 
    'is-invalid': submitted && f.name.errors }">

       <div *ngIf="submitted && f.name.errors" class="invalid-feedback">
          <div *ngIf="f.name.errors.required">Name is required

          </div>
      </div>
      </div>
      <div class="form-group">
          <label>Email</label>
          <input type="text" formControlName="email" 
    [(ngModel)]="employeeDetails.email" class="form-control" [ngClass]="{ 
    'is-invalid': submitted && f.email.errors }" />
          <div *ngIf="submitted && f.email.errors" class="invalid-feedback">
              <div *ngIf="f.email.errors.required">Email is required</div>
              <div *ngIf="f.email.errors.email">Email must be a valid email 
    address</div>
          </div>
      </div>

      <div class="form-group">
          <label>Phone</label>
          <input type="text" formControlName="phone"  
    [(ngModel)]="employeeDetails.phone" class="form-control" [ngClass]="{ 
    'is-invalid': submitted && f.phone.errors }" />
          <div *ngIf="submitted && f.phone.errors" class="invalid-feedback">
              <div *ngIf="f.phone.errors.required">Phone is required</div>
          </div>
      </div>

      <div class="form-group">
        <button class="btn btn-success btn-lg btn-block">Create 
    Employee</button>
      </div>
    </form>
    </div>
    </div>

and this is the component.ts: 这是component.ts:

    import { Component, OnInit , Input} from '@angular/core';
    import { Router } from '@angular/router';
    import { RestApiService } from "../shared/rest-api.service";
    import { ReactiveFormsModule , FormsModule, FormControl} from 
    '@angular/forms'
    import { FormBuilder, FormGroup, Validators } from '@angular/forms';
    import { MustMatch } from '../helpers/must-match.validator';
    @Component({
     selector: 'app-employee-create',
      templateUrl: './employee-create.component.html',
      styleUrls: ['./employee-create.component.css']
    })
    export class EmployeeCreateComponent implements OnInit {

      employeeDetails: FormGroup;
      submitted = false;
      constructor(
        private formBuilder: FormBuilder,
        public restApi: RestApiService, 
        public router: Router
      ) { }

      ngOnInit() {
       this.employeeDetails = this.formBuilder.group({
          name: ['', Validators.required],

          email: ['', [Validators.required, Validators.email]],
          phone: ['', Validators.required],
       });
      }

      get f() { return this.employeeDetails.controls; }
      addEmployee(dataEmployee) {
        this.submitted=true;
        if (this.employeeDetails.invalid) {
          return;
      }


        this.restApi.createEmployee(this.employeeDetails).subscribe((data: 
    {}) => {
          this.router.navigate(['/employees-list'])
        })
        alert('SUCCESS!! :-)\n\n' + 
    JSON.stringify(this.employeeDetails.value))

      }

This is what i got when i click on createEmployee : 这是我单击createEmployee时得到的:

在此处输入图片说明

First dont use [(ngModel)] and formControlName in the same time. 首先不要同时使用[[ngModel)]和formControlName。 It is obsolate as of Angular 6 I think. 我认为从Angular 6开始已经过时了。

You are trying to push a form in the request instead of an object this is why the problem occurs. 您试图在请求中而不是对象中推送表单,这就是为什么会出现此问题。 Try this: 尝试这个:

this.restApi.createEmployee(this.employeeDetails.getRawValue()).subscribe((data: 
{}) => {
      this.router.navigate(['/employees-list'])
    })
    alert('SUCCESS!! :-)\n\n' + 
JSON.stringify(this.employeeDetails.getRawValue()))

Tell me how it went after that :) 告诉我那之后怎么样了:)

You can try this: 您可以尝试以下方法:

this.restApi.createEmployee(this.employeeDetails.value).subscribe((data: 
{}) => {
      this.router.navigate(['/employees-list'])
    })
    alert('SUCCESS!! :-)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

相关问题 错误类型错误:将循环结构转换为 JSON --> 从 object 开始,构造函数为“FirebaseAppImpl” Firebase Angular - ERROR TypeError: Converting circular structure to JSON --> starting at object with constructor 'FirebaseAppImpl' Firebase Angular Angular Storybook 中的 FormGroup:将循环结构转换为 JSON - Angular FormGroup in Storybook: Converting circular structure to JSON 如何解决 Express 错误:TypeError: Converting circular structure to JSON - How to solve Express error : TypeError: Converting circular structure to JSON Angular-TypeError:将圆形结构转换为JSON - Angular - TypeError: Converting circular structure to JSON TypeError:将圆形结构转换为JSON angular 6 - typeerror: converting circular structure to json angular 6 JSON.stringify 在 Angular Universal 中的 SSR 期间抛出错误但适用于 locahost “TypeError: Converting circle structure to JSON” - JSON.stringify throws error during SSR in Angular Universal BUT works on locahost "TypeError: Converting circular structure to JSON" JSON的循环结构,UI运行时错误TypeError - Circular Structure to JSON, UI Runtime Error TypeError Angular Json Pipe 类型错误:将循环结构转换为 Z0ECD11C1D7A287401D148A23BBDZ - Angular Json Pipe TypeError: Converting circular structure to JSON 为使用 routerLink、Spectator 和 Jest 的角度组件编写测试时出现 `TypeError:将循环结构转换为 JSON` 错误 - `TypeError: Converting circular structure to JSON` error when writing tests for an angular component that utilizes routerLink, Spectator, and Jest 未捕获的类型错误:在 Angular / 依赖项更新后将循环结构转换为 JSON - Uncaught TypeError: Converting circular structure to JSON after Angular / dependencies update
 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM