Не удается исправить пустой массив форм

#angular

Вопрос:

У меня есть форма:

 this.myForm = this.fBuilder.group({
            speeches: this.fBuilder.array([])
});
 

А потом я хочу просто залатать весь массив речей внешним массивом, поступающим из другого компонента. Примеры данных:

 newData = [{id: "wavesurfer_mt87bwp5cyi", start: 0.8766667991737204, duration: 2.006666969971786, characterId: 0},
{id: "wavesurfer_glxyt1be2js", start: 4.0033339384320845, duration: 2.2600003415961307, characterId: 1}]
 

И я хочу исправить это вот так:

 this.myForm.controls.speeches.patchValue(newData);
 

Однако Angular не изменяет пустой массив в соответствии с моим предполагаемым массивом объектов, как же так получилось? Должен ли я всегда иметь каждое свойство в качестве надлежащего элемента управления формой? Мне это не нужно, так как эти значения никогда не будут использоваться в реальном поле формы.

Ответ №1:

Если вы просто хотите сохранить массив значений в «речах» FormControl, вам не нужно использовать для этого FormArray.

 this.myForm = this.fBuilder.group({
     speeches: [[]]
});

this.myForm.controls.speeches.patchValue(newData);