0
votes

Comment définir la valeur d'index sur la forme angulaire 7 en utilisant FormControl

Impossible de définir la valeur d'index à partir de la boucle pour former le contrôle dans l'angulaire sans utiliser NG-Model existe-t-il un moyen de l'accomplir?

//form Group
this.sampledata= new FormGroup({
      sample: new FormArray([this.createArray()])
    });

//Form Array
createArray(){
return this.formBuilder.group({
      dx: null,
      index:null
    })

//Creation of array dynamically
getControls(frmGrp: FormGroup, key: string) {
  return (<FormArray>frmGrp.controls[key]).controls;
}


3 commentaires

Pouvez-vous également mentionner votre groupe de formes?


salut @ ng-suhas vérifier ma question il est mis à jour avec du groupe


J'ai donné ma réponse. J'espère que ça aide.


3 Réponses :


0
votes

Essayez d'utiliser la liaison de la propriété

<div formArrayName="sample" *ngFor="let a of sampledata; let i = index">
  <div [formGroupName]="i">
    <input type="text" formControlName="i" name="i" [value]="i" 
  />
  <input
      formControlName="dx"
      type="text"
      class="form-control"
    />
  </div>
</div>


3 commentaires

Mon FormControlName est Index uniquement et je dois définir la valeur de i pour cela.


@Gaganv Essayez la réponse mise à jour et vous avez besoin d'un nom unique pour chaque formulaire.


Aucune erreur d'index d'erreurs n'est pas réglée sur la valeur d'entrée, si nous ajoutons manuellement une entrée, il est de la valeur



0
votes

Il y a quelques points que vous avez manqué dans votre code,

parce que vous traitez avec les balises d'entrée dynamique , vous devez donner le nom unique à < Code> formontrolname et qui peut être effectué avec le code ci-dessous.

PS: Pour une valeur, vous n'avez pas besoin d'ajouter {{}} . xxx

espère que cela aide .. :)


2 commentaires

depuis notre formulaireGroupName est unique, il ne traitera pas d'un problème avec le même formelcontrolname car je reçois la valeur pour l'entrée


Nope * ngfor La valeur de l'index n'est pas réglé sur la valeur d'entrée, si nous ajoutons manuellement l'entrée, il est de la valeur



0
votes

* ngfor code> doit être placé après avoir défini le nom du formaire. Vous devez modifier votre HTML comme ci-dessous,

<div formArrayName="samples">
    <div *ngFor="let a of getControls(sampledata, 'sample'); let i = index"
           [formGroupName]="i">
    <input type="text" formControlName="index" name="index" value="{{ i }}"/>
  </div>
</div>


0 commentaires