91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

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

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

怎么在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

文水县| 缙云县| 巴塘县| 蓝田县| 中西区| 灵武市| 同德县| 潢川县| 东辽县| 蕲春县| 桦川县| 景洪市| 明水县| 壤塘县| 龙井市| 行唐县| 武宁县| 同心县| 基隆市| 徐汇区| 临朐县| 海丰县| 晴隆县| 盐池县| 邮箱| 台北市| 漾濞| 精河县| 巴塘县| 玛纳斯县| 榆社县| 岳普湖县| 天气| 环江| 达州市| 太康县| 定兴县| 天门市| 平舆县| 巴塘县| 大埔县|