angular - Angular react 形式的条件要求验证

标签 angular

我想根据其他一些表单值对某些属性应用条件验证。我已经提到了一些答案 Angular2: Conditional required validation ,但那些不能满足我的需要。因为我必须在我的大型企业应用程序的 40 多个表单(大约 30 个字段)中实现条件验证。我不想在每个组件中编写相同的代码并更改 FormControl 名称。我不知道如何通过指令实现这一点。

如果年龄控制值 v 大于 18,则需要提供许可证号字段。

这是我的代码:

this.userCustomForm = this.angularFormBuilder.group({
age:['',Validators.required],
licenseNo:[''] // Here I want to apply conditional required validation.
});

在我的应用程序中,有些情况下我想根据嵌套的 FormGroupFormArray 值设置条件验证。

请指导我,我该如何实现。

最佳答案

对我来说,它像这样完美地工作:

this.userCustomForm.get('age').valueChanges.subscribe(val => {
  if (condition) {
    this.userCustomForm.controls['licenseNo'].setValidators([Validators.required]);
  } else {
    this.userCustomForm.controls['licenseNo'].clearValidators();
  }
  this.userCustomForm.controls['licenseNo'].updateValueAndValidity();
});

您必须 updateValueAndValidity 才能使更改生效。

关于angular - Angular react 形式的条件要求验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52866016/

相关文章:

angular - 即使我不保存更改,Visual Studio Code 也会继续编译

angular - Azure Active Directory 没有 session 过期

angular - 如何避免在 TypeScript、Angular2 的派生类中重复基类构造函数参数?

css - 使用 ngFor 的 Angular flex 布局

css - Angular Transform Scale - 删除空白

javascript - 如何将formarray传递给其他组件

Angular 5 - 在 TypeScript 中翻译字符串

angular - ion-label 在 Ionic2 中不显示整个文本

css - visibility :hidden in Angular 2

angular - 在 Angular 中执行控制反转 (IoC)