我有一个输入组件,它通过Angular DI查找FormGroupDirective
,并且在我再有一个FormGroupDirective之前,它都能正常工作。
换句话说,我可以有这样的东西
FormGroupDirective
--> input 1
--> input 2
--> input 3
这些输入可以成功找到该指令,但是如果我再添加一个指令
RootFormGroupDirective
--> FormGroupDirective1
--> input 1
输入1检索FormGroupDirective1
而不是RootFormGroupDirective
。
我知道有一个@SkipSelf()
装饰器,但是这种装饰器不适用于这种情况,因为输入组件可能被包装成无数个组件。
如果在更高级别上还有一个跳过此
FormGroupDirective1
的方法,或者获得此操作的父指令,那么有没有办法?
我只找到了如何获得父母FormGroup
的方法,但这还没有submitted
。
答案 0 :(得分:0)
解决方案非常简单并且不明显。您不应在表单上使用多个FormGroupDirectrive。如果我们在API中查看FormGroupDirective,则path
中的一行显示
返回一个表示该组路径的数组。由于此指令始终位于表单的顶层,因此它始终为空数组。
意味着FormGroupDirective应该是唯一的。我的错误是我试图使用@Input() formGroup
通过树将我的formGroup实例向下传递,这会干扰导致问题的指令