Once the user will click on the edit button, I want to patch data in the reactive form. Currently, I am able to patch value with normal fields. But unable patch values in Dynamic fields and Arrays.
ngOnInit() {
this.registrationForm = this.fb.group({
personal_details : this.fb.group({
name: this.fb.group({
first_name: [''],
last_name: ['']
}),
about_yourself: [''],
dob: [''],
// lang: [''],
languages_known: this.fb.array([]),
willingly_to_travel: ['']
}),
technologies: this.fb.array([
this.addTech()
]),
certifications : this.fb.array([
this.addCertificate()
]),
});
this.getAllTrainners();
}
When the user clicks on edit button following function will run :
editTrainner(trainner: Trainner) {
this._trainnerservice.currentTrainner = Object.assign({}, trainner);
this.registrationForm.patchValue({
personal_details: { type: Object,
name: { type: Object,
first_name: this._trainnerservice.currentTrainner.personal_details.name.first_name,
last_name: this._trainnerservice.currentTrainner.personal_details.name.last_name
},
dob: this._trainnerservice.currentTrainner.personal_details.dob,
about_yourself: this._trainnerservice.currentTrainner.personal_details.about_yourself,
languages_known: this.fb.array([this.addlanguages_known()]),
willingly_to_travel: this._trainnerservice.currentTrainner.personal_details.willingly_to_travel
}
});
}
addlanguages_known(): any {
const control = this.registrationForm.get('languages_known') as FormArray;
this._trainnerservice.currentTrainner.personal_details.languages_known.forEach(x => {
control.push(this.fb.control(''));
});
}