Найти родительский элемент управления формой, когда он находится в FormArray - PullRequest
0 голосов
/ 04 августа 2020

В дочернем компоненте мне нужно получить FormControl от родительского FormGroup. Это достаточно просто сделать, введя FormGroupDirective в конструктор, а затем вызвав .control.get() для этого внедренного элемента.

Однако, если элемент управления формы фактически вложен внутри FormArray, тогда это не так. т работать. Что эквивалентно получению FormControl из FormArray?

В моем HTML у меня просто довольно стандартная настройка

<div [formGroup]="formGroup">
    <ngb-accordion formArrayName="subspaces">
        <ngb-panel *ngFor="let subspace of subspaces; index as i" [formGroupName]=i">
            <my-custom-control controlName="someControlName"

Используя директиву, я не должны фактически передать formGroup. В идеале мне не нужно было бы передавать formArrayName или formGroupName в my-custom-control, но я могу, если нужно.

Я не хочу передавать что-то вроде this.formArray.at(index).get('someControlName') в дочерний элемент управления . Я хочу просто передать controlName и позволить ребенку «найти» его напрямую.

Я не знаю, как получить экземпляр FormArray из FormGroupDirective

1 Ответ

1 голос
/ 04 августа 2020

Вы можете попробовать использовать этот код

<div [formGroup]="formGroup">
    <ngb-accordion formArrayName="subspaces">
        <ngb-panel *ngFor="let subspace of formGroup.get('subspaces')['controls']; let i =index" [formGroupName]=i">
            <my-custom-control controlName="someControlName"
...