J'essaie de construire une forme dynamique, où les noms de champs et leurs validations proviendront d'une API
Donc, je crée une forme simple, avec un formariène à l'intérieur, quelque chose comme ceci: P>
<form [formGroup]="myForm"> <div formArrayName="dynamicFields"> <div *ngFor="let control of getDynFields().controls; let i = index"> <mat-form-field> <input [formControlName]="i" matInput type="text" placeholder="{{ control.value }}" /> </mat-form-field> </div> </div> </form>
3 Réponses :
Pour la longueur min, utilisez des validateurs.Minlength (22)
Veuillez vous reporter: https://angular.io/api/forms/validators#minlength Pour plus d'informations.
Min (10) utilisé pour ajouter une validation en tant que valeur minimale peut être de 10. p>
formontrol prend au lieu de cette p> Vous devriez faire ce p> 'State' code> ou la valeur par défaut comme premier paramètre lors de l'initialisation. Aussi pour la longueur minimale, vous devez utiliser
validators.minlength (n) code>.
validateurs.min () vs Valiadators.minlength () strong> Vous utilisez validateurs.min () . Il est prévu de vérifier les valeurs d'entrée numériques, de ne pas obtenir la longueur d'une chaîne: p> Utilisez validateurs.minlength () à la place: p> Le premier paramètre d'un formulaire est sa valeur . Vous définissez une valeur de «pays» dans votre exemple: p> Si vous le définissez sur NULL, vous verrez n'importe quel espace réservé que vous avez défini. P> let customControl = this.fb.control(null, [ Validators.required, Validators.minLength(10) ]);
Si vous voulez que le validateur ASYNC vérifie le nom d'uniqness ou quelque chose que j'ai recommandé à ce lien: moyen.com/@tomaszsocki/... - exemple simple et simple. Et si vous utilisez du matériel, vérifiez la balise CODE>. Deuxièmement, vous devriez remplacer
min () code> avec
minlength () code>
Bienvenue sur Stackoverflow. Sur un Sidenote: S'il vous plaît, essayez de poser une seule question. Demander deux va vous faire demi-réponse. Cela pourrait même être une raison de fermer votre question.