Ich habe einen benutzerdefinierten Validator für die Validierung der Pan-Kartennummer definiert (https://en.wikipedia.org/wiki/Permanent_account_number).Angular 4: Benutzerdefinierter Validator wird nicht aufgerufen
function validatePan(): ValidatorFn {
return (c: AbstractControl) => {
var regpan = /^([a-zA-Z]){5}([0-9]){4}([a-zA-Z]){1}?$/;
if (!regpan.test(c.value)) {
return {
validatepan: {
valid: false
}
};
} else {
return null;
}
}
}
@Directive({
selector: '[validatepan][ngModel], [validatepan][formControlName], [validatepan][formControl]',
providers: [
{ provide: NG_VALIDATORS, useExisting: forwardRef(() => PanValidator), multi: true }
]
})
export class PanValidator implements Validator{
validator: ValidatorFn;
constructor() {
this.validator = validatePan();
}
validate(c: FormControl) {
console.log('here');
return this.validator(c);
}
}
Ich habe die Richtlinie in den Deklarationsabschnitt des
declarations: [
....
PanValidator
],
Modul registriert ich die Richtlinie verwende als
<input type="text" class="form-control" name="testpan" id="field_testpan"
[(ngModel)]="testval.testpan"
validatepan />
folgt aber es ist weder die Richtlinie Initialisierung noch der Aufruf Funktion validieren.
Vielen Dank für Ihre Antwort. Ich habe das auch versucht. Aber das gleiche Ergebnis. –
@ PrashanthRaghu können Sie Plunker erstellen, dass Link ein funktionierendes Beispiel hat, bitte befolgen Sie das könnte helfen –
Jeder Fehler, den Sie bekommen –