Je crée un formulaire dynamique. A Field
a une liste de valeurs. Chaque valeur est représentée par une chaîne de caractères.
export class Field{
name: string;
values: string[] = [];
fieldType: string;
constructor(fieldType: string) {this.fieldType = fieldType;}
}
J'ai une fonction dans mon composant qui ajoute une nouvelle valeur au champ.
addValue(field){
field.values.push("");
}
Les valeurs et le bouton sont affichés comme ceci dans mon HTML.
<div id="dropdown-values" *ngFor="let value of field.values; let j=index">
<input type="text" class="form-control" [(ngModel)]="field.values[j]" [name]="'value' + j + '.' + i"/><br/>
</div>
<div class="text-center">
<a href="javascript:void(0);" (click)="addValue(field)"><i class="fa fa-plus-circle" aria-hidden="true"></i></a>
</div>
Dès que j'écris du texte dans l'entrée d'une valeur, l'entrée perd le focus. Si j'ajoute plusieurs valeurs à un champ et que j'écris un caractère dans l'une des entrées de valeurs, l'entrée perd le focus et le caractère est écrit dans chaque entrée.
0 votes
Duplicata possible de comment utiliser track by dans ngFor angular 2