我无法理解为什么它formControlName
不想在另一个组件内部工作。
工作示例:
<form novalidate [formGroup]="myForm">
<app-form-group [field]="'email'">
<input type="text" [formControlName]="'email'" />
</app-form-group>
</form>
为 input-a 编写了一个包装器,它将从父应用程序表单组中获取字段名称,以免重复“电子邮件”。Angular 开始崩溃,抱怨带有 [formGroup] 指令的元素应该是父元素,尽管即使在上面的工作示例中,很明显表单是输入的祖先,而不是父元素。抛开我的包装器逻辑的问题,我生成了一个空组件并在其中放置了与示例中完全相同的输入,但这不起作用,结果是这样的:
<form novalidate [formGroup]="myForm">
<app-form-group [field]="'email'">
<app-control></app-control>
</app-form-group>
</form>
使用 [formControl] 指令解决了这个问题。结果,我从父 app-form-group 中嵌入了字段名称,并从 [formGroup] 指令中嵌入了表单对象本身