Если вы используете тот же formcontrolName
, то вы получите только последнее контрольное значение ..
Так как мы можем настроить ваш код ??
В app.component.ts
Изменение:
exerciseForm = this.fb.group({
answer:['']
})
Кому:
exerciseForm:FormGroup;
Просто инициализируйте здесь formgroup
и не назначайте никаких значений на данный момент ..
Вам нужно добавить новую функцию для создания formGroup
и вызвать ее внутри ngOnInit
ловушки жизненного цикла.
ngOnInit(): void {
this.createGroup()
}
Здесь для ранее назначенного this.exerciseForm
необходимо назначить значение группы this.fb.group({});
.
Затем вам нужно сформировать элементы управления для вопросов, представляющих собой массив, и вам нужно выполнить итерацию в ts
как,
this.exercises[0].questions.forEach(control => ... )
Итак, внутри этого l oop, вам необходимо присвоить control
каждому элементу соответственно, так как id
является уникальным значением, вы можете задать его как элемент управления, как
this.exerciseForm.addControl(control.id, this.fb.control(''))
И функцию следующим образом:
createGroup(){
this.exerciseForm = this.fb.group({});
this.exercises[0].questions.forEach(control =>
this.exerciseForm.addControl(control.id, this.fb.control(''))
);
return this.exerciseForm;
}
И в app.component.html
только одно изменение (присвоение уникального formcontrolname
)
Изменение,
formControlName="answer"
На
[formControlName]="question.id"
Разветвленный стек-блиц H до ..