角度-在发布请求后如何使用来自订阅或地图的数据并在对象中设置

时间:2018-11-15 11:48:23

标签: angular

发布请求后,这将返回一些数据,我不知道如何使用此数据并将其设置为对象类或任何对象,或者仅在控制台日志中打印。 控制台日志始终写入未定义的对象。

onSubmit() 
  {
    this.http.post('some/api',
    JSON.stringify({
      user_name: this.login_form.value.user_name,
      password: this.login_form.value.password
    }),
    this.options
    )
    .subscribe(data =>  {
      this.getUserData = data[0];
      
      this.user = {
        Ime: data['Ime'],
        Prezime: data['Prezime'],
        Username: data['Username'],
        Sifra: data['Sifra'],
        Broj_telefona: data['Broj_telefona'],
        jmbg: data['jmbg'],
        Nivo: data['Nivo']
      }

    });

    console.log(this.user);
    console.log(this.getUserData);
  }

this is class User

export class User {
constructor(
    Ime: any,
    Prezime: any,
    Username: any,
    Sifra: any,
    Broj_telefona: any,
    jmbg: any,
    Nivo: any
) {}
}

1 个答案:

答案 0 :(得分:2)

在订阅块中使用console.log,如下所示-

onSubmit() 
  {
    this.http.post('some/api',
    JSON.stringify({
      user_name: this.login_form.value.user_name,
      password: this.login_form.value.password
    }),
    this.options
    )
    .subscribe(data =>  {
      this.getUserData = data[0];

      this.user = {
        Ime: data['Ime'],
        Prezime: data['Prezime'],
        Username: data['Username'],
        Sifra: data['Sifra'],
        Broj_telefona: data['Broj_telefona'],
        jmbg: data['jmbg'],
        Nivo: data['Nivo']
      }
    console.log(this.user);
    console.log(this.getUserData);
    });
  }

由于您正在使用http方法,该方法是异步的,但是console.log在此调用之前正在运行。