#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);