Comment puis-je créer disons mon propre validateur maxLength dans Angular 2? Tous les exemples que j'ai pu trouver utilisent des validateurs similaires à "requis", ce qui signifie qu'ils connaissent déjà les règles. Ils n'acceptent qu'un seul paramètre - le contrôle lui-même. Comment passer plus de paramètres?
Voici l'exemple de validateur que j'ai. Comment le modifier pour passer le numéro 5 en paramètre?
export class MyValidators {
static minValue(control:Control): {[s: string]: boolean} {
var num = +control.value;
if (isNaN(num) || num < 5 ) { return {"minValue": true}; }
return null;
}
}
Merci.
Voici un exemple. C'est un validateur de valeur min où vous passez un nombre à valider.
import {Control} from 'angular2/common';
export const minValueValidator = (min:number) => {
return (control:Control) => {
var num = +control.value;
if(isNaN(num) || num < min){
return {
minValue: {valid: false}
};
}
return null;
};
};
Plus de détails peuvent être trouvés dans la page de documentation officielle Validateurs personnalisés .
L'exemple minValueValidator montre essentiellement que vous pouvez utiliser une usine pour votre validateur personnalisé, ce sera donc quelque chose comme ceci:
static minValue = (num: Number) => {
return (control:Control) => {
var num = control.value;
if (isNaN(num) || num < 5 ) { return {"minValue": true}; }
return null;
}
}
Dans mon cas, j'utilise FormControl pas Control
import { FormControl } from '@angular/forms';