Angular редактировать из профиля просмотра, используя данные массива, взятые из БД - PullRequest
0 голосов
/ 23 апреля 2020

Мне нужно отредактировать профиль из этой формы. Поля формы должны содержать значения, взятые из массива в файле 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");
    });
  }```



Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...