我有一个实际上是表单控件的组件。这个单独的组件接受一个输入(@Input),并且应该将它传递给表单验证器。问题是表单验证器在定义输入之前运行。因此结果是具有未定义参数的验证器。解决办法是什么??感谢...
export class InputComponent{
@Input() min: number;
@Input() max: number;
formControl: FormControl;
constructor() {
this.formControl = new FormControl('', [
Validators.required,
CustomValidators.minMaxlength(this.min, this.max)
]);
}
}
答案 0 :(得分:3)
在Angular中,在调用ngOnInit生命周期挂钩之前,组件输入不能完全解析。在组件中,您通常不希望构造函数中包含任何内容,并且大多数初始化应在ngOnInit挂钩或更高版本中完成。
export class InputComponent{
@Input() min: number;
@Input() max: number;
formControl: FormControl;
constructor() {}
ngOnInit() {
this.formControl = new FormControl('', [
Validators.required,
CustomValidators.minMaxlength(this.min, this.max)
]);
}
}