import { Injectable } from '@angular/core'; import { FormArray, FormBuilder, FormGroup } from '@angular/forms'; import { Contact } from '@nested-forms/contact'; @Injectable({ providedIn: 'root', }) export class ContactFormService { constructor(private fb: FormBuilder) {} public createForm(model: Contact): FormGroup { const name = model.name; const addresses: FormArray = this.fb.array([]); const group = this.fb.group({ name: this.fb.group({ firstName: [name ? name.firstName : ''], lastName: [name ? name.lastName : ''], middleName: [name ? name.middleName : ''], prefix: [name ? name.prefix : ''], suffix: [name ? name.suffix : ''], }), addresses: addresses, }); if (model.addresses) { model.addresses.forEach(addr => { addresses.push( this.fb.group({ line1: [addr ? addr.line1 : ''], line2: [addr ? addr.line2 : ''], city: [addr ? addr.city : ''], state: [addr ? addr.state : ''], postalCode: [addr ? addr.postalCode : ''], }), ); }); } return group; } }