我正在以角度创建自己的表单构建器。 我有HTML代码:
<form [formGroup]="formGroup">
<my-input-field
[field]="{type:'text'}"
[formControlName]="'first'"></my-input-field>
</form>
我不知道如何在MyInputFieldComponent
中获取父级formGroup
(我不想将其作为额外属性传递。更少的样板更好)。
我可以自己获取parentElement
,但如何让父component
获取formGroup
?
constructor(protected elementRef: ElementRef) {}
ngOnInit() {
console.log(this.elementRef.nativeElement.parentElement);
}
答案 0 :(得分:2)
哟不需要为此注入父组件,在这种情况下,最好的选择是实现ControlValueAccessor
接口。
https://angular.io/api/forms/ControlValueAccessor
你可以在这里看到如何做到这一点: https://blog.thoughtram.io/angular/2016/07/27/custom-form-controls-in-angular-2.html
ControlValueAccessor
是在Angular中创建自定义表单字段的界面,如果您在组件@angular/forms
中实现它,可以将其用作html本机输入,使用ngModel
访问值或formControlName