首页 > 解决方案 > 查找位于 FormArray 中的父表单控件

问题描述

在子组件中,我需要FormControl从父母的FormGroup. FormGroupDirective通过注入构造函数然后调用注入的项目很容易做到.control.get()

但是,如果表单控件实际上嵌套在 aFormArray中,那么这是行不通的。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. 理想情况下,我不必通过formArrayNameor formGroupNamemy-custom-control但如果必须,我可以。

我想避免将类似的东西传递this.formArray.at(index).get('someControlName')给子控件。我只想通过controlName并让孩子直接“找到”它。

我不确定如何FormArrayFormGroupDirective

标签: angularangular-componentsangular10

解决方案


您可以尝试使用此代码

<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"

推荐阅读