У меня сложная вложенная групповая форма:

  this.form = this.formBuilder.group({
     'type': new FormControl(),
     'formGroup1': this.formBuilder.group({'date': new FormControl()}),
     'formGroup2': this.formBuilder.group({'types': new FormArray([])}),
  });

Я хочу, чтобы форма отображалась в зависимости от значения this.form.get("type").value. Если значение равно 1, показывать только formGroup1, если 2, то formGroup2.

<form [formGroup]="form" class="dialog_form" autocomplete="off">
   <input type="text" formControlName="type">
   <!-- Subforms here
</form>

Как это сделать?

-1
user14316755 22 Сен 2020 в 00:06

1 ответ

Лучший ответ

Вам нужно сделать как

<form [formGroup]="form" class="dialog_form" autocomplete="off">
    <input type="text" formControlName="type">

    <form *ngIf="form.get('type').value === 1; else f2" formGroupName="formGroup1">
        ...
    </form>

    <ng-template #f2>
        <form formGroupName="formGroup2">
            ...
        </form>
    </ng-template>
</form>

Надеюсь полезно

1
yash 21 Сен 2020 в 21:18