Это просто безумие, похоже, что нет способа иметь форму, в которой один из ее вкладов находится в дочернем компоненте.Angular2 inested template driven form
Я прочитал все блоги и учебные пособия и все, без возможности этого.
Проблема заключается в том, что у дочернего компонента будут какие-либо директивы формы (ngModel, ngModelGroup или что-то еще ..), это не сработает.
Это только проблема в основе шаблонов форм
Это plunker:
import { Component } from '@angular/core';
@Component({
selector: 'child-form-component',
template: `
<fieldset ngModelGroup="address">
<div>
<label>Street:</label>
<input type="text" name="street" ngModel>
</div>
<div>
<label>Zip:</label>
<input type="text" name="zip" ngModel>
</div>
<div>
<label>City:</label>
<input type="text" name="city" ngModel>
</div>
</fieldset>`
})
export class childFormComponent{
}
@Component({
selector: 'form-component',
directives:[childFormComponent],
template: `
<form #form="ngForm" (ngSubmit)="submit(form.value)">
<fieldset ngModelGroup="name">
<div>
<label>Firstname:</label>
<input type="text" name="firstname" ngModel>
</div>
<div>
<label>Lastname:</label>
<input type="text" name="lastname" ngModel>
</div>
</fieldset>
<child-form-component></child-form-component>
<button type="submit">Submit</button>
</form>
<pre>
{{form.value | json}}
</pre>
<h4>Submitted</h4>
<pre>
{{value | json }}
</pre>
`
})
export class FormComponent {
value: any;
submit(form) {
this.value = form;
}
}
См. Также https://medium.com/@a.yurich.zuev/angular-nested-template-driven-form-4a3de2042475 – yurzui