#angular
Вопрос:
У меня есть угловые реактивные формы и массив данных. Я хочу передать один из массивов данных в этой форме. группа форм
this.paiement = this.ajp.group({
nbrmois: ['', [Validators.required]],
mantant: [''],
idUser: [''],
paiementTime: ['']
})
Массив данных
this.nbrs = [
{
nom: '3 mois',
prix: 200,
dis: '0 %',
valueq: 3
},
{
nom: '6 mois',
prix: 540,
dis: '10 %',
valueq: 6
},
]
Я пробовал с 'nbrmois: [this.nbrs.valueq.value, [Validators.required]]
, но не работает
Комментарии:
1. nbrmois: [this.nbrs[0].valueq, [Требуются валидаторы.]], …….. у вас есть массив, поэтому вам нужно использовать индекс массива, элемент ведьмы, который вы хотите показать. Если вы хотите показать все элементы в массиве, вам нужно использовать элемент FormArray
Ответ №1:
Если вы спрашиваете: «Могу ли я обновить FormArray с помощью исправления или при инициализации», ответ отрицательный. Вам нужно перебрать свою коллекцию и нажать группы форм, чтобы решить эту проблему.
nbrs = [
{
nom: '3 mois',
prix: 200,
}
]
nbrmoisArray = new FormArray([])
form = new FormGroup({
nbrmois: this.nbrmoisArray
})
this.nbrs.forEach(x => {
const {nom, prix} = x;
this.nbrmoisArray.push(new FormGroup({
nom: new FormControl(nom),
prix: new FormControl(prix)
})
}
<div [formGroup]="form">
<div formArrayName="nbrmois">
<div *ngFor="let group of nbrmoisArray.controls; let i = index">
<div [formGroupName]='i'>
<input formControlName="nom" />
<input formControlName="prix" />
</div>
</div>
</div>
</div>