J'ai créé la directive pour valider la valeur d'entrée. J'ai besoin de cela en entrée certains caractères ma entrée/formulaire deviennent ivalid. Voici mon code, mais cela ne fonctionne pas.Directive pour la validation de la valeur d'entrée
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
}
};
}
}
Merci pour votre aide. Passez une bonne journée.
Qu'est-ce qui ne fonctionne pas? Qu'attendez-vous qu'il se passe? Qu'est-ce qui se passe réellement? Comment utilisez-vous cette classe que vous avez créée? Veuillez créer une démo en ligne sur StackBlitz ou Plunker. –
pourquoi utilisez-vous une entrée il suffit d'utiliser '[validateur] [ngModel]' obtenir la valeur de 'AbstractControl' –
Il doit valider l'entrée et lorsque l'entrée est {ou} le formulaire doit jeter une erreur à essayer de sauver. – SashaSemanyuk