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