我有一个带有input
标记的子组件
<input [formControl]="control">
- component.ts* 文件
@Input() control: FormControl;
并在父级中将其用作
<app-input [control]="f['email']"></app-input>
~~~~~~~~~~
- component.ts* 文件
public form: FormGroup;
constructor(
private fb: FormBuilder,
) {
this.form = this.fb.group({
email: ['', [
Validators.email,
Validators.required
]],
});
}
get f() {
return this.form.controls;
}
但是它在HTML control
赋值中给出了一个错误。
Type AbstractControl<any> is not assignable to type FormControl
2条答案
按热度按时间wz3gfoph1#
由于窗体组和数组可以包含组、数组或控件,因此它们返回抽象控件。您必须明确声明它们是控件。
isr3a4wc2#
您可以执行以下操作:
然后在父html中:
<app-input [control]="form.controls.email"></app-input>
这样,表单控件值在开发过程中就可以作为类型使用