Angular - 是否可以在嵌套的反应形式中使用控件的路径而不是其名称?

时间:2017-07-07 11:21:02

标签: angular angular-reactive-forms

简单地说,当使用嵌套的反应形式时,是否可能有这样的东西:



<!-- DESIRED -->
<form [formGroup]="rootFormGroup">
  <custom-input formControlName="nestedFormGroup.someVariable"></custom-input>
</form>
&#13;
&#13;
&#13;

而不是:

&#13;
&#13;
<!-- CURRENT STATE -->
<form [formGroup]="rootFormGroup">
  <div formGroupName="nestedFormGroup">
    <custom-input formControlName="someVariable"></custom-input>
  </div>
</form>
&#13;
&#13;
&#13;

一些背景信息:我们的&#34;自定义输入&#34;需要控件的完整路径(以及rootFormGroup,尽管它已被排除在代码段之外)以便调用某些服务,例如:

  • 与根表单中的其他变量进行交叉验证。
  • 加载输入标签
  • 用于<select> - 派生自定义输入,加载选项

我们可以更改后两个使用名称而不是完整路径(只要我们在不同的嵌套组中不使用相同的名称两次),但交叉验证使用rootFormGroup.get(...),其中转动对路径的呼唤。

当然,可以注射两者(例如:<custom-input path="nestedFormGroup.someVariable" formControlName="someVariable">),但这并非非常干燥。

出于同样的原因,我想避免使用formControl指令(例如:<custom-input path="nestedFormGroup.someVariable" [formControl]="rootFormGroup.get('nestedFormGroup.someVariable')">

如果push推进,我可能会使用一些模糊的递归函数来检查源自rootFormGroup的任何FormGroup / FormArray,以便找到仅具有其名称的控件(而不是其完整路径),但这也不完全令人满意。

这里没什么关键,但绝对欢迎任何帮助或评论!

0 个答案:

没有答案