在Angular中创建自定义表单输入

在Angular中创建自定义表单输入,angular,Angular,我正在angular中创建自己的表单生成器。 我有html代码: <form [formGroup]="formGroup"> <my-input-field [field]="{type:'text'}" [formControlName]="'first'"></my-input-field> </form> 您不需要为此注入父组件,在这种情况下,最好的选择是实现ControlValue

我正在angular中创建自己的表单生成器。 我有html代码:

<form [formGroup]="formGroup">
    <my-input-field
            [field]="{type:'text'}"
            [formControlName]="'first'"></my-input-field>
</form>

您不需要为此注入父组件,在这种情况下,最好的选择是实现
ControlValueAccessor
接口

您可以在此处看到如何执行此操作:


ControlValueAccessor
是在Angular中创建自定义表单字段的接口,如果您在组件中实现它
@Angular/forms
可以将其用作html本机输入,使用
ngModel
formControlName
访问值,您不需要为此注入父组件,在这种情况下,最好的选择是实现
ControlValueAccessor
接口

您可以在此处看到如何执行此操作:


ControlValueAccessor
是在Angular中创建自定义表单字段的接口,如果您在组件中实现它,
@Angular/forms
可以将其用作html本机输入,使用
ngModel
formControlName

访问值。。。你为什么要这么做?获取formgroup的值?为什么不将名称本身作为@input传递?什么阻止了你,什么是用例/需求?如果没有它,我将不得不在所有
我的输入字段中提供额外的属性。我认为这是多余的
formControlName
指令知道父组件是否有
formGroup
,所以它必须是可能的。嗯。。。你为什么要这么做?获取formgroup的值?为什么不将名称本身作为@input传递?什么阻止了你,什么是用例/需求?如果没有它,我将不得不在所有
我的输入字段中提供额外的属性。我认为这是多余的
formControlName
指令知道父组件是否具有
formGroup
,因此它必须是可能的。我可以使用该方法。谢谢,我可以用这个办法。谢谢
constructor(protected elementRef: ElementRef) {}

ngOnInit() {
   console.log(this.elementRef.nativeElement.parentElement);
}