亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

怎么在Angular中自定義字段校驗指令

發布時間:2021-03-25 16:18:07 來源:億速云 閱讀:234 作者:Leah 欄目:web開發

這篇文章給大家介紹怎么在Angular中自定義字段校驗指令,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

添加指令

/shared/validator.directive.ts

注冊到 NG_VALIDATORS 提供商中

providers: [
    {provide: NG_VALIDATORS, useExisting: ValidatorDirective, multi: true}
  ]

Angular 在驗證流程中的識別出指令的作用,是因為指令把自己注冊到了 NG_VALIDATORS 提供商中,該提供商擁有一組可擴展的驗證器。

實現 Validator 接口

import {Directive, Input} from '@angular/core';
import {Validator, AbstractControl, NG_VALIDATORS} from '@angular/forms';

@Directive({
  selector: '[appValidator]',
    providers: [
      {provide: NG_VALIDATORS, useExisting: ValidatorDirective, multi: true}
    ]
})

export class ValidatorDirective implements Validator {
  @Input('appValidator') value: string;

  validate(control: AbstractControl): { [key: string]: any } | null {
    const validateMac = /^(([A-Fa-f0-9]{2}[:]){5}[A-Fa-f0-9]{2}[,]?)+$/;
    switch (this.value) {
      case 'mac':
        return validateMac.exec(control['value']) ? null : {validate: true};
        break;
    }
  }

}

ValidatorDirective寫好后,只要把 appValidator 選擇器添加到輸入框上就可以激活這個驗證器。

在模板中使用

首先在模板所在的module中引入該指令

import {ValidatorDirective} from "../../shared/validator.directive";

@NgModule({
  imports: [
    SharedModule
  ],
  declarations: [
    ValidatorDirective
  ],
  providers: [
    AuthGuard
  ],
})

在html中使用

<nz-form-item>
    <nz-form-control>
      <nz-input-group>
        <input formControlName="mac" nz-input type="text" placeholder="mac" appValidator="mac">
      </nz-input-group>
      <nz-form-explain *ngIf="validateForm.get('mac').dirty && validateForm.get('mac').errors">
        請輸入正確的Mac地址!
      </nz-form-explain>
    </nz-form-control>
  </nz-form-item>

在mac地址校驗不通過時,錯誤信息便會顯示。如果想在失去焦點時顯示錯誤信息可以使用validateForm.get('mac').touched,如下:

<nz-form-explain *ngIf="validateForm.get('mac').dirty && validateForm.get('mac').errors&&validateForm.get('mac').touched">
        請輸入正確的Mac地址!
      </nz-form-explain>

關于怎么在Angular中自定義字段校驗指令就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

双辽市| 闸北区| 濮阳市| 延安市| 芮城县| 广元市| 安吉县| 陕西省| 仙游县| 石阡县| 庄河市| 临武县| 克什克腾旗| 佛冈县| 宣城市| 慈利县| 通山县| 玉门市| 拉孜县| 墨玉县| 榆中县| 东宁县| 手游| 石嘴山市| 罗甸县| 昭平县| 四平市| 昌黎县| 山丹县| 澄迈县| 长海县| 永仁县| 浦北县| 抚宁县| 高台县| 林州市| 阿鲁科尔沁旗| 西平县| 乐昌市| 青州市| 斗六市|