我創建了用於驗證輸入值的指令。我需要輸入一些字符,我的輸入/表單變爲ivalid。 這是我的代碼,但它不工作。驗證輸入值的指令
import {Directive, Input} from '@angular/core';
import {AbstractControl, NG_VALIDATORS, ValidationErrors} from '@angular/forms';
const regExp = new RegExp('(>|<)+');
@Directive({
selector: '[validator]',
providers: [{
provide: NG_VALIDATORS,
useExisting: ValidatorDirective,
multi: true
}]
})
export class ValidatorDirective {
@Input('validator') input;
constructor() {
}
validate (control: AbstractControl): ValidationErrors {
const value = control.value;
const isValid = regExp.test(value);
return isValid ? null : {
validator: {
valid: false
}
};
}
}
謝謝您的幫助。 祝您有愉快的一天。
什麼不工作?你期望發生什麼?究竟發生了什麼?你如何使用你創建的這個類?請在StackBlitz或Plunker上創建一個在線演示。 –
爲什麼你使用輸入只是使用'[驗證器] [ngModel]'從'AbstractControl'獲取值 –
它應該驗證輸入,並且當輸入是{或}表單應該在嘗試保存時拋出錯誤。 – SashaSemanyuk