Aller au contenu

Lab 02 : FormArray pour les Tags

step-2-album-wholesale-v16-post-add-album

Dans ce lab, vous allez ajouter une gestion dynamique de tags au formulaire d’album en utilisant FormArray. Vous allez implémenter des méthodes pour ajouter et supprimer des contrôles de formulaire dynamiquement, permettant aux utilisateurs de créer plusieurs champs de tags à la volée.

Ajoutez un FormArray pour des champs dynamiques :

import { FormBuilder, FormArray } from '@angular/forms';
private fb = inject(FormBuilder);
albumForm = this.fb.group({
name: ['', Validators.required],
artist: ['', Validators.required],
tags: this.fb.array([]) // FormArray pour les tags
});
get tags(): FormArray {
return this.albumForm.get('tags') as FormArray;
}

Méthodes pour gérer le FormArray :

addTag() {
this.tags.push(this.fb.control('', Validators.required));
}
removeTag(index: number) {
this.tags.removeAt(index);
}

Itérez sur le FormArray dans le template :

<div formArrayName="tags">
<div *ngFor="let tag of tags.controls; let i = index">
<input [formControlName]="i" placeholder="Tag">
<button type="button" (click)="removeTag(i)">Remove</button>
</div>
<button type="button" (click)="addTag()">Add Tag</button>
</div>