Je travaille sur angulaire 4 et créé un validateur personnalisé pour la validation cgpa (si le cgpa est moins tahn 2.0 ou plus grand que 4.0) dans le fichier component.ts mais ce n'est pas le déclencheur mais le Validators.required prédéfini fonctionne correctement.angulaire 4 validateur personnalisé ne fonctionne pas
ACMG Validator:
function ValidCgpa(cgpa: FormControl): {[s: string]: boolean} {
let num = Number(cgpa);
if(num < 2.0 || num > 4.0) {
return {invalidCgpa: true};
}
}
sur mesure ACMG Validator Appel
this.educationalDetailsForm = new FormGroup({
cgpa: new FormControl('', Validators.compose([Validators.required, ValidCgpa]))
});
Code HTML
<input type="text" formControlName="cgpa" placeholder="CGPA">
<div *ngIf="educationalDetailsForm.hasError('ValidCgpa','cgpa') && educationalDetailsForm.get('cgpa').touched">
CGPA must be greater than 2.0 and less than 4.0
</div>
Nombre (ACMG) devrait être le numéro (cgpa.value), ou plus simple: + cgpa.value. L'ajout de journaux dans le code ou l'utilisation du débogueur facilite grandement la recherche. Un validateur est sommé de renvoyer null, non indéfini, lorsqu'il n'y a pas d'erreur. –
ce droit, mais il dit que le validateur n'est pas invoqué, donc la ligne est fausse, mais ce n'est pas le problème – Nickolaus
Autre que cela, le code est correct. S'il n'est pas invoqué, un exemple complet est requis. Voir http://plnkr.co/edit/XxZw1icOBLUDLtHgVy7V?p=preview. Mais je suppose que l'OP * pense * qu'il n'est pas appelé parce que le message d'erreur n'apparaît pas. –