projects/app-base-library/src/lib/angular/directives/validators/email-validator.directive.ts
providers |
{ : , : (() => ), : true }
|
selector | [validateEmail][ngModel],[validateEmail][formControlName],[validateEmail][formControl] |
Properties |
Methods |
constructor()
|
validate | ||||||
validate(c: FormControl)
|
||||||
Parameters :
Returns :
any
|
validator |
validator:
|
Type : Function
|
import { Directive, forwardRef } from '@angular/core';
import { NG_VALIDATORS, FormControl } from '@angular/forms';
import { validationConstants } from '../../../shared/index';
function validateEmailFactory() {
return (c: FormControl) => {
const EMAIL_REGEXP = validationConstants.REGEX_EMAIL;
return EMAIL_REGEXP.test(c.value) ? null : {
validateEmail: {
valid: false
}
};
};
}
@Directive({
selector: '[validateEmail][ngModel],[validateEmail][formControlName],[validateEmail][formControl]',
providers: [
{ provide: NG_VALIDATORS, useExisting: forwardRef(() => EmailValidatorDirective), multi: true }
// { provide: NG_VALIDATORS, useExisting: forwardRef(() => EmailValidatorDirective), multi: true }
]
})
export class EmailValidatorDirective {
validator: Function;
constructor() {
this.validator = validateEmailFactory();
}
validate(c: FormControl) {
return this.validator(c);
}
}