Я думаю, что ваши внутренние компоненты (app-address-mailing-standard-form, app-address-mailing-military-form ...) могут иметь @Input about formGroup и * ngIf
@Input()group:FormGroup
<form *ngIf="group" [formGroup]="group">
<input formControlName="prop1">
...
</form>
Итак, ваш main.app может быть похож на
<app-address-formatheader-form
[group]="form.get("header")>
</app-address-formatheader-form>
<app-address-mailing-standard-form
[group]="form.get('mailing')">
</app-address-mailing-standard-form>
<app-address-mailing-standard-form
[group]="form.get('military')">
</app-address-mailing-standard-form>
...
Итак, если ваш main.app создаст форму вроде
this.form=new FormGroup({
header:new FormGroup({...}),
military:new FormGroup({...})
})
Показывать только «заголовок» и «военный»,но это всего лишь идея. Все зависит от того, каким образом и где вы создаете форму и formGroup.
Если вы создаете fromGroup внутри компонентов, используйте входные параметры для установки, например
@Input() set visible(value)
{
if (visible)
this.group=new formGroup({...})
}
И передайте только в качестве аргумента«видимый»
<app-address-formatheader-form [visible]="variable"></app-address-formatheader-form>
снова в форме, подобной
<form *ngIf="group" [formGroup]="group">
<input formControlName="prop1">
...
</form>