Angular предоставляет возможность инициализации вашего FormGroup
при создании.Я бы посоветовал вам инициализировать значения при создании registrationForm
, как показано ниже.
this.registrationForm = this.fb.group({
...
technologies: this.fb.array(
this.data.technologies && this.data.technologies.length ?
this.data.technologies.map(tech => this.addTech(tech)) : [this.addTech()]
),
...
});
addTech(tech: Technology = {costing: {}} as Technology): FormGroup {
return this.fb.group({
name: [tech.name || ''],
experience : [tech.experience || ''],
ratings : [tech.ratings || ''],
costing : this.fb.group({
freshers: [tech.costing.freshers || ''],
laterals : [tech.costing.laterals || ''],
project_specific: [tech.costing.project_specific || '']
}),
work_as_consultant: [tech.work_as_consultant || '']
});
}
, где ваш Technology
интерфейс будет выглядеть примерно так
export interface Technology {
name: string;
experience: number;
ratings: number;
costing: Costing;
work_as_consultant: string;
}
export interface Costing {
freshers: number;
laterals: number;
project_specific: number;
}
Аналогично, создайте интерфейсы длядругие группы форм и инициализируйте их при создании, как показано выше.