Мне нужно отредактировать профиль из этой формы. Поля формы должны содержать значения, взятые из массива в файле TS. И при отправке, если пользователь изменил какие-либо данные, он должен обновить все поля в базе данных. Если кто-то может сказать мне, как сделать это для поля Полное имя, я могу сделать все остальное. Спасибо!
HTML
<mat-form-field class="example-full-width">
<mat-label>Full_name</mat-label>
<input matInput formControlName="Full_name" *ngFor="let item of items" value="item.full_name">
</mat-form-field>
TS
constructor(
private fb : FormBuilder,
private http: HttpClient,
private router : Router
) {
this.editForm = this.fb.group({
Full_name: [''],
Email: [''],
Profession: [''],
Affiliation: [''],
Teck_stack: [''],
Certifications: [''],
Category: [''],
})
}
ngOnInit(): void {
let id = localStorage.getItem('user_id');
this.getProfile(id);
}
getProfile(id:any): void {
let uri = API_BASE_URL + "/user/getprofile/" +id;
this.http.get(uri).subscribe((res: any) => {
this.items = res.response;
console.log(this.items)
})
}
Update(): void {
const controls = this.editForm.controls;
let data = new FormData();
var user = {
"full_name": controls['Full_name'].value,
"email": controls['Email'].value,
"profession": controls['Profession'].value,
"affiliation": controls['Affiliation'].value,
"teck_stack": controls['Teck_stack'].value,
"certifications": controls['Certifications'].value,
"category": controls['Category'].value
}
data.append("user", JSON.stringify(user));
let uri = API_BASE_URL + '/user/studentupdateprofile';
this.http.post(uri, user).subscribe(res => {
alert('success');
this.router.navigateByUrl("home");
});
}```