【发布时间】:2021-05-01 19:59:06
【问题描述】:
我正在尝试从我的 Angular 反应式表单中动态删除验证。
错误:
我的代码初始化表单:
experienceForm = this.fb.group({
'positionTitle': ['', Validators.required],
'companyName': ['', Validators.required],
'startDate': ['', Validators.required],
'endDate': ['', Validators.required]
});
负责动态移除验证的函数:
togglePresent(event: any) {
if (event.checked) {
this.present = true;
this.experienceForm.get('endDate')?.clearValidators();
this.experienceForm.get('endDate')?.updateValueAndValidity();
}
else { this.present = false; }
}
基本上,只要选中复选框,该函数就会运行。我对此感到沮丧是因为我正在实现 Angular 文档中的代码。
有什么想法吗?
【问题讨论】:
-
constructor or in ngOnInit 中的表单在哪里初始化?你在哪里调用 togglePresent 方法?
-
我也没有初始化表单。每当切换复选框值时,我都会在我的 HTML 模板中调用 togglePresent 方法。
-
@DaveGuerrero,控制台中的错误指向第 78 行的 addExperience 函数/行。如果可能的话,您可以在您的问题中添加该代码吗..
-
@DaveGuerrero stackblitz.com/edit/… 这是演示工作
-
@DaveGuerrero 您可以像
experienceForm: FormGroup = <FormGroup>{};那样临时分配它,然后您可以在 ngOnInit() 中使用 this.fb.formGroup({}) 创建您的 FormGroup。
标签: angular angular-reactive-forms