若要实现一个自定义验证器,它应该返回验证错误的对象。它必须返回一个对象并附加指定名称的属性(例如,如果该自定义验证器的名称是“myValidator”,则应该返回{myValidator: true})。
以下是一个示例代码,它实现了一个自定义验证器:
import {AbstractControl} from '@angular/forms';
export function myValidator(control: AbstractControl) {
if (!control.value.includes('@')) {
return { myValidator: true };
}
return null;
}
在上面的示例中,如果控件的值不包含 '@' 字符,则该自定义验证器将返回{ myValidator: true },否则返回 null。
请注意,自定义验证器必须注册到模板驱动表单或响应式表单中以使用。要将其注册到模板驱动表单中,请将其添加到指令的 providers 属性中。要将其注册到响应式表单中,请将其添加到控件的验证器数组中。