我有一个已创建的自定义控件。
formControlName="first_name"
<form [formGroup]="userProfileForm">
效果很好。
是否可以从定制控件的类中引用formGroup而无需添加和输入:
@Input() formGroup: FormGroup;
答案 0 :(得分:1)
从this stackoverflow answer中可以注入构造函数:
constructor(el:ElementRef,@Host() @SkipSelf() private control:ControlContainer)
因此,在control.control的ngOnInit中,您具有FormGroup
ngOnInit()
{
console.log(this.control.control.value)
}
答案 1 :(得分:0)
在您的form
元素上放置一个模板名称:
<form [formGroup]="userProfileForm" #my_form>
然后,在您的组件中,您可以将该元素作为成员变量获取:
@ViewChild('my_form') formVariable;
现在,您可以使用以下方式访问formGroup:
this.formVariable.formGroup
来自组件内部,或者
formVariable.formGroup
在模板中。
评论后编辑:您不想紧密耦合
您所描述的内容相当于组件间的通信:您希望组件(无论是否嵌入)交换信息。通常的最佳方法是使用服务和Subject
机制。参见here in the official Angular docs。