我有几个共享公共部分的表单。我将这些常用部分放在组件中并使用'viewProviders'来访问父表单:
@Component({
selector: 'sub-form',
...
viewProviders: [ { provide: ControlContainer, useExisting: NgModelGroup} ]
})
问题是我需要使用该组件隐藏组并直接在表单内部,如下面的示例所示:
<form>
...
<div ngModelGroup="my-group">
<sub-form></sub-form>
</div>
...
</form>
<form>
...
<sub-form></sub-form>
...
</form>
不幸的是,通过使用'useExisting:NgModelGroup',这仅适用于第一种情况,而使用'useExisting:NgForm'时,它总是将自身绑定到主窗体,忽略该组。我尝试使用'useExising:ControlContainer',因为 NgForm 和 NgModelGroup 都扩展了这个类,但是我得到了一个循环依赖错误(如预期的那样)。
我是否需要创建两个不同的组件,或者是否有办法在两种情况下都能使用它?