2 votes

Comment ajouter dynamiquement un nom au champ de saisie ?

J'ai besoin d'utiliser un champ de saisie avec un nom unique pour tous les champs. Je ne peux pas utiliser [ngModelOptions] = "{standalone: true}", car j'ai un problème de validation dans le formulaire (ces champs sont ignorés dans la validation). Voici une partie de mon code :

        ce champ est obligatoire

...(plus de lignes)

Alors, comment ajouter name = "{{index}}" dynamiquement.

Par exemple

name= '1'

name = '2'

...

name = 'n'

1voto

UnluckyAj Points 4538

Si votre intention est d'utiliser plusieurs entrées dans le formulaire, vous pouvez utiliser un tableau de formulaires ici :

tableau de formulaires réactifs

Démo de base

Créer des contrôles :

constructor(private fb: FormBuilder) {}

 createForm() {
    this.myForm = this.fb.group({
      people: this.fb.array([this.createArray()])
    })
  }

  createArray() {
    return this.fb.group({
      name: null,
      addresses: null
    });
  }

Accéder aux contrôles :

{{myForm.controls.people.controls[i].controls.name.value}}

0voto

Shin Points 10934

Je suggère d'utiliser Formulaires Réactifs, afin que vous puissiez bénéficier de FormArray:

https://angular.io/guide/reactive-forms#dynamic-controls-using-form-arrays

pour que vous puissiez facilement faire des choses comme :

      Votre Contrôle:

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X