angular - Angular ReactiveForms - 如何将验证器设置为整个 FormGroup
问题描述
我目前有一个非常大的表格。
我对每个字段都有以下验证器,例如:
this.surname = new FormControl('', [
Validators.pattern(/^([a-zA-Z0-9]+[_.\- /\\]{0,1})*([a-zA-Z0-9]+)$/i),
Validators.minLength(3),
Validators.maxLength(30),
Validators.required
]);
每个字段都一样。是否可以不重复代码并为每个人应用相同的规则?我刚试过:
formGroupName.setValidators([Validators.required]);
但不幸的是它不起作用。
解决方案
你可以:
1.-使用辅助变量
const validators=[
Validators.pattern(/^([a-zA-Z0-9]+[_.\- /\\]{0,1})*([a-zA-Z0-9]+)$/i),
Validators.minLength(3),
Validators.maxLength(30),
Validators.required
]
this.surname = new FormControl('',validators)
2.-使用 setValidator 迭代控件
Object.keys(this.form).forEach(key=>{
this.form.get(key).setValidators(Validators.required)
}
推荐阅读
- sql - 按字段访问过滤器
- javascript - Node WritableStream 不直接级联
- linux - 断电期间的最后一条命令
- firebase - “StorageReference”类型的值没有成员“孩子”
- java - 通用 JavaBeanObjectProperty 的未检查分配错误,但 ReadOnlyJavaBeanObjectProperty 没有
- javascript - 是否可以为 android 创建一个带有屏幕覆盖访问权限的 pwa?
- python - 以列表为值的二维字典python
- vis.js - 如何将负日期添加到时间线
- spring-batch - ItemWriter 春季批次中最后处理的项目
- powershell - Windows 7 中未知的 Compress-Archive powershell 命令