import { Component, OnInit } from '@angular/core'; import { FormGroup, FormControl, FormArray, Validators, FormBuilder } from '@angular/forms'; @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.css'] }) export class AppComponent implements OnInit{ title = 'app works!'; multiForm: FormGroup; personList = [ { 'fName': "Mark", 'lName': "Otto", 'UserName': "@mdo" }, { 'fName': "Mark", 'lName': "Otto", 'UserName': "@TwBootstrap" }, { 'fName': "Jacob", 'lName': "Thornton", 'UserName': "@fat" } ] constructor(private formBuilder: FormBuilder) { this.multiForm = this.formBuilder.group({ userDetails: this.formBuilder.array([]) }); } ngOnInit() { this.multiForm = this.formBuilder.group({ userDetails: this.formBuilder.array( this.personList.map(x => this.formBuilder.group({ firstName: [x.fName, [Validators.required, Validators.minLength(2)]], lastName: [x.lName, [Validators.required, Validators.minLength(2)]], userName: [x.UserName, [Validators.required, Validators.minLength(2)]] })) ) }) } onAdd(){ console.log('11'); // this.personList.push({ // fName: "Anil", // lName: "kk", // UserName: "@anks" // }) const steps = this.multiForm.controls['userDetails']; steps.push(this.formBuilder.group({ firstName: ['muuu', [Validators.required, Validators.minLength(2)]], lastName: ['aa', [Validators.required, Validators.minLength(2)]], userName: ['test', [Validators.required, Validators.minLength(2)]] })) } onDelete(index){ console.log(this.multiForm); const steps = this.multiForm.controls['userDetails']; steps.removeAt(index); } sendData(){ console.log(this.multiForm.value); this.personList = this.multiForm.value.userDetails; } }