javascript - Comment faire en sorte que ngFor avec un input à l'intérieur ne répète pas la valeur saisie ?
J'ai besoin de créer plusieurs champs de saisie avec ngFor, mais lorsque j'entre un mot, il se répète dans tous les champs de saisie existants. Comment puis-je résoudre ce problème ?
mon code :
<div class="" *ngFor="let publication of publications">
...
<form #newCommentForm="ngForm" (ngSubmit)="onSubmit(newCommentForm, $event, publication._id)">
<div class="make-comment" >
<img src="{{url+ 'get-image-user/' + publication.user.image }}" *ngIf="publication.user.image" class="rounded-circle-mini align-self-center">
<input type="text" name="#text" #text="ngModel" [(ngModel)]="comment.text" id="input-coment" class="form-control" required placeholder="Your comment">
<button class="btn btn-sm btn-secondary" style="color: #fff;" type="submit"><i class="bi bi-arrow-bar-left"></i></button>
</div>
</form>
</div>
Réponse #1
Vous liez la variable 'comment.text' à chaque entrée [model]. Cela signifie que sa valeur est partagée entre toutes vos portées d'entrée. Vous devez utiliser 'publication', qui est uniquement limitée à chaque entrée.
*ngFor="let publication of publications"
Changez [(ngModel)]="comment.text" pour quelque chose comme [(ngModel)]="publication.text"
Réponse #2
Vous liez toutes les entrées à une seule propriété comment.text. Vous devriez créer une propriété pour chaque entrée et y lier chaque entrée.
