【发布时间】:2018-08-01 21:03:11
【问题描述】:
我有一个反应式表单,它具有非常相关的验证。我创建了一个具有跨字段验证的所有功能的类,但是如果我尝试使用 Validators.validator 设置它,它不会触发这些功能。如果我只是使用{validator: MyValidatorClass.myCrossFieldValidator1},这将适用于该功能,但我需要应用更多验证器,并且它不是一个好的解决方案,开始创建子表单组。
我的代码看起来像这个代码,但名称不同
class MyValidatorClass {
static myCrossFieldValidator1 ...
static myCrossFieldValidator2 ...
static myCrossFieldValidator2 ...
}
和形式:
this.myForm = this.formBuilder.group({
field1: ['', [Validators.required, Validators.min(0), Validators.maxLength(2)]], // Done
field2: ['', [Validators.required, Validators.min(0)]],
field3: ['', [Validators.required]],
...},
{ validator: MyValidatorClass .myCrossFieldValidator1 } // This works but only for one function myCrossFieldValidator1 and is not what I need
// I have tried with
validators & Validators: [MyValidatorClass .myCrossFieldValidator1
,MyValidatorClass .myCrossFieldValidator12
,MyValidatorClass .myCrossFieldValidator3]
// 但这不起作用 );
这里的其他解决方案建议声明子组或将函数应用于字段,但我正在寻找将多个自定义跨字段验证器应用于我的组。不知道哪里出了问题,或者是否是技术的限制。 Angular 在其示例中仅展示了一个验证器函数 https://angular.io/guide/form-validation#cross-field-validation
的简单案例【问题讨论】:
标签: angular angular-reactive-forms angular-validation angular-validator