У меня есть большая форма с шагами, я реализовал все входные данные в одном HTML-файле, затем я попытался создать элементы управления формы с шагами. Мой HTML-файл выглядит так до
<ngb-tabset #t="ngbTabset">
<ngb-tab title="Fase 1 " id="fase1">
<ng-template ngbTabContent>
stuff..
</ng-template>
</ngb-tab>
<ngb-tab title="Fase 2 " id="fase2">
<ng-template ngbTabContent>
stuff..
</ng-template>
</ngb-tab>
</ngb-tabset>
И мой formGroup
был таким
initResourceForm() {
this.resourceForm = this.formBuilder.group({
id: [0],
inputStuff: [''],
...
})
}
Затем я создал компоненты для каждого шага формы, чтобы использовать селектор и сократить файл HTML. Из-за этого я разделил formGroup
по шагам и теперь выгляжу следующим образом:
initResourceForm() {
this.resourceForm = this.formBuilder.group({
id: [0],
fase1: this.formBuilder.group({
stuffFase1: [''],
...
}),
fase2: this.formBuilder.group({
stuffFase1: [''],
...
}),
})
}
И мой HTML-файл выглядит как
<ngb-tabset #t="ngbTabset">
<app-fase1></app-fase1>
<app-fase2></app-fase2>
</ngb-tabset>
И html-файл каждого файла имеет <ngb-tab>
и выглядит как
<ngb-tab title="Fase 1 " id="fase1">
<ng-template ngbTabContent>
<form [formGroup]="resourceForm.controls.fase1">
stuff...
<p>
<button class="btn btn-outline-primary" (click)="t.select('fase2');">Next</button>
</p>
</ng-template>
</ngb-tab>
Я не сделал ничего особенного в компонентах Fases, и любой компонент отображается в основном компоненте формы
Чтобы прояснить мой вопрос, папка с деревом такова
main-form/
fase1-form/
fase1.component.html
fase1.component.ts
fase1.component.spec.ts
fase1.component.css
main-form.component.html
main-form.component.ts
main-form.component.spec.ts
main-form.component.css