当表单元素具有无效值但我无法访问它并且我不知道该怎么做时,我试图添加一个错误类。
code.component.ts
this.dateRangeForm = this.fb.group({
from: this.fb.group({
fromYear: new FormControl(null, [ValidYearsValidator]),
fromMonth: new FormControl(null, []),
fromDay: new FormControl(null, [])
}),
to: this.fb.group({
toYear: new FormControl(null, []),
toMonth: new FormControl(null, []),
toDay: new FormControl(null, [])
})
});
code.component.html
<form [formGroup]="dateRangeForm">
<span formGroupName="from">
<input type="text" [ngxOnlyNumbers]="true" maxlength="4" class="date-form-input" formControlName="fromYear"
size="4" [class.error]="!fromYear.valid">
我的问题是在下面的代码的最后输入中。我正在尝试访问fromYear.valid属性,但在加载表单后出现此错误:
错误TypeError:无法读取未定义的属性“有效”
答案 0 :(得分:1)
您可以使用dateGroupForm.controls.from.controls.fromYear
访问控件。
然后可以使用dateGroupForm.controls.from.controls.fromYear.value
访问该控件的属性(值,状态等)。
答案 1 :(得分:0)
如果要在嵌套表单组中获取表单控件的状态,这是访问它的方法:
<input type="text" [ngxOnlyNumbers]="true" maxlength="4" class="date-form-input" formControlName="fromYear"
size="4" [class.error]="!dateRangeForm.controls.from.controls.fromYear.valid">
dateRangeForm.controls.from.controls.fromYear.valid
答案 2 :(得分:0)
您需要在组件中提供一种get
方法才能访问fromYear
属性。
示例:
get fromYear(){
return this.dateRangeForm.get('from.fromYear');
}