所以我有一个表单,我需要向其中添加验证器,并且只有当某个条件与另一个控件匹配时,才需要一些控件。做这件事的好方法是什么。我最初创建了一个自定义验证器函数,我将一个参数传递给该函数,以确定是否需要该函数,但无论我是否更新表单中的其他控件,它都会保留参数的原始值。
public static required(bookType: BookType, controlKey: string) {
return (control: AbstractControl): ValidationErrors | null => {
if(this.isRequired(bookType,controlKey)){
return !control.value? {required: true} : null
}
return null;
}
}
表单图书类型最初是数字的,我将图书类型更改为打印,使其保持数字。
这感觉它应该是一个表单控件验证器,因为我正在验证一个值,而不是组。
什么是使这项工作成功的最好方法?
1条答案
按热度按时间oiopk7p51#
您需要实现一个跨字段验证器。因此,您将能够在验证器函数中处理这些字段的值。细节:https://angular.io/guide/form-validation#cross-现场验证
用法:
要在模板中显示错误,请使用:
form.errors?.deliveryAddressRequiredValidator