介绍
这篇文章给大家介绍怎么在角中自定义字段校验指令,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。
<强>添加指令强>
<代码>//validator.directive共享。ts 代码>
注册到NG_VALIDATORS提供商中
提供者:,( ,,,{提供:NG_VALIDATORS,, useExisting:, ValidatorDirective,,多:,真正} ]才能
角在验证流程中的识别出指令的作用,是因为指令把自己注册到了NG_VALIDATORS提供商中,该提供商拥有一组可扩展的验证器。
<强>实现验证器接口强>
import {输入指令,,},得到& # 39;@angular/核心# 39;; import {验证器,,AbstractControl,, NG_VALIDATORS},得到& # 39;@angular/形式# 39;; @Directive ({ ,,选择器:& # 39;[appValidator] & # 39; ,,,提供者:, ,,,,,{提供:NG_VALIDATORS,, useExisting:, ValidatorDirective,,多:,真正} ,,,) }) export class  ValidatorDirective implements Validator  { @Input才能(& # 39;appValidator& # 39;),值:,字符串; 验证才能(控制:AbstractControl):,{,(关键:字符串):,any }, |, null { ,,,const validateMac =,/^ (([A-Fa-f0-9] {2} [:]) {5} [A-Fa-f0-9] {2} [,] ?) + $/; ,,,switch (this.value), { ,,,,,case & # 39; mac # 39;: ,,,,,,,return validateMac.exec(控制[& # 39;价值# 39;]),?,null :,{验证:真正的}; ,,,,,,,休息; ,,,} ,,} }
ValidatorDirective写好后,只要把appValidator选择器添加到输入框上就可以激活这个验证器。
<强>在模板中使用强>
首先在模板所在的模块中引入该指令
import {ValidatorDirective},得到“. ./. ./共享/validator.directive"; @NgModule ({ 进口:,才能 ,,SharedModule ,,, 声明:,才能 ,,ValidatorDirective ,,, 供应商:,才能 ,,AuthGuard ,,, })
在html中使用
& lt; nz-form-item> ,,,& lt; nz-form-control> ,,,,,& lt; nz-input-group> ,,,,,,,& lt; input formControlName=癿ac", nz-input 类型=皌ext",占位符=癿ac", appValidator=癿ac"比; ,,,,,& lt;/nz-input-group> ,,,,,& lt; nz-form-explain * ngIf=皏alidateForm.get (& # 39; mac # 39;) .dirty ,,, validateForm.get (& # 39; mac # 39;) .errors"比; ,,,,,,,请输入正确的Mac地址! ,,,,,& lt;/nz-form-explain> ,,,& lt;/nz-form-control> & lt;才能/nz-form-item>
在mac地址校验不通过时,错误信息便会显示。如果想在失去焦点时显示错误信息可以使用validateForm.get (& # 39; mac # 39;)。感动,如下:
& lt; nz-form-explain * ngIf=皏alidateForm.get (& # 39; mac # 39;) .dirty ,,, validateForm.get (& # 39; mac # 39;) .errors&, validateForm.get (& # 39; mac # 39;) .touched"比; ,,,,,,,请输入正确的Mac地址! ,,,,,& lt;/nz-form-explain>
关于怎么在角中自定义字段校验指令就分享到这里了,希望以上内容可以对大家有一定的帮助,可以学到更多知识。如果觉得文章不错,可以把它分享出去让更多的人看的到。