When I try to nest NgModelGroup inside another NgModelGroup, it looks like Angular just ignore it. I'm using Angular 12 and Template-driven Forms.
This is how my code looks like:
app.component.html
<form #form="ngForm">
<div class="col-auto">
<input name="name" id="name" ngModel /><br />
<app-address></app-address>
</div>
<div class="btn-toolbar">
<button type="submit" (click)="submit(form)">Submit</button>
</div>
<p>{{ form.value | json }}</p>
</form>
address.component.html
<div ngModelGroup="address">
<input name="street" id="street" ngModel />
<app-contact></app-contact>
</div>
contact.component.html
<div ngModelGroup="contact">
<input name="phone" id="phone" ngModel />
</div>
This is the actual result:
{
"name":"John Snow",
"address":{
"street":"201 Somewhere Place, 12"
},
"contact":{
"phone":"6405106300"
}
}
And this is what I'm trying to get unsuccessfully:
{
"name":"John Snow",
"address":{
"street":"201 Somewhere Place, 12",
"contact":{
"phone":"6405106300"
}
}
}
Also, you can see the code here: https://stackblitz.com/edit/angular-ivy-osf83a?
The problem was solved changing the NgForm to NgModelGroup on my Contact typescript file.
This is what it looks like before. Note that I just have to change two places: