angular 4:自定义验证器不起作用 [英] angular 4 : custom validator not working
本文介绍了angular 4:自定义验证器不起作用的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我从 angular 官方文档中提取了这个示例.我注意到自定义验证适用于反应式表单,但不适用于模板驱动的表单.
这是提到的例子
指令:
export function forbiddenNameValidator(nameRe: RegExp): ValidatorFn {return (control: AbstractControl): {[key: string]: any} =>{const forbidden = nameRe.test(control.value);禁止返回?{'forbiddenName': {value: control.value}} : null;};}@指示({选择器:'[appForbiddenName]',提供者:[{provide: NG_VALIDATORS, useExisting: ForbiddenValidatorDirective, multi: true}]})导出类 ForbiddenValidatorDirective 实现了 Validator {@Input() forbiddenName: 字符串;验证(控制:AbstractControl):{[键:字符串]:任何} {返回 this.forbiddenName ?forbiddenNameValidator(new RegExp(this.forbiddenName, 'i'))(control): 空值;}}
模板:
<div *ngIf="name.errors.minlength">名称长度必须至少为 2 个字符.
<div *ngIf="name.errors.forbiddenName">姓名不能是 Bob.