Я работаю в веб-приложении Angular 8.
У меня есть FormGroup, которая содержит некоторые элементы управления и ключ с именем params
, который является FormArray. Этот FormArray содержит FormGroups.
Проблема в том, что я создаю эти FormGroups (params) с объектом js, и они теряют ключ name
. Это очень странно.
Я опубликую полезный код:
Здесь я создаю предварительно загруженную форму с данными из бэкэнда:
public buildPreLoadedForm() {
this.form = this.formBuilder.group({
...this.currentFormula,
params: this.formBuilder.array([]),
formulaResult: []
});
this.updateFormulaParams();
}
public updateFormulaParams() {
for (const param of this.currentFormula.params) {
this.formParams.push(this.createFormulaParam(param));
}
}
public createFormulaParam(formulaParam: FormulaParam) {
return this.formBuilder.group({...formulaParam});
}
Параметр внутри «currentFormula» выглядит следующим образом:
const param: FormulaParam = {
ID: 0,
CreatedAt: null,
UpdatedAt: null,
DeletedAt: null,
name: 'val' + num,
type: 'number'
};
Я добавляю новые параметры внутри формы, делая так:
(this.form.get('params') as FormArray).push(this.createFormulaParam(param));
Создаемый параметр выглядит следующим образом:
![enter image description here](https://i.stack.imgur.com/AXEjP.png)
Но внутри формы (после ее нажатия) я получаю:
![param object just created](https://i.stack.imgur.com/lczde.png)
Я теряю свойство name
! И это не имеет смысла для меня.
Спасибо!