Nested groups in Angular2 forms?
Asked Answered
R

1

0

I'm using the reactive forms module in Angular 2 to create a form with several nested groups.

My 'trust' form has an array of contacts at

<FormArray>this.newTrustForm.controls['contact']

One of the fields in the 'contact' group is an array of 'email' groups and I tried finding it here, but alas, no. Where would I then find it?

<FormArray>this.newTrustForm.controls['contact'].controls['email']

I setup my form with the following.

constructor(private _fb: FormBuilder) { }

ngOnInit() {
  this.newTrustForm = this._fb.group({
    ...
    contact: this._fb.array([]),
    ...
  });
}

I then add 'contact' groups with the following.

initContact() {
  return this._fb.group({
    ...
    email: this._fb.array([]),
    ...
  });
}

And then I have initContactEmail setup in the same way.

Retentivity answered 2/3, 2017 at 14:40 Comment(3)
you should show us how you are creating these groups.Immorality
@Immorality See edits. TIA.Retentivity
I'm not seeing you iterating through every contact to create the email group. if you're are nesting, you should do this. Take a look at the last example from the oficial site: angular.io/docs/ts/latest/guide/…Immorality
G
2

You have specify the index of contact:

<FormArray>this.newTrustForm.controls['contact'][INDEX]['controls']['email']

Or (more readable):

this.newTrustForm.get(`contact.${INDEX}.email`) as FormArray;

Also, as a suggestion, since contact and email are arrays, you could named them in plural: contacts and emails.

Gingivitis answered 2/3, 2017 at 15:51 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.