使用获取请求加载对象数组

时间:2018-07-25 13:24:34

标签: angular

我正在加载带有get请求返回的变量

如果我这样做的话,我必须使用另一种方法,并且必须像任何其他我一样使用我的cbbcategory变量

  cbbcategory : any;
  loadCombobox() {
    this.categoriaService.getCombobox()
    .subscribe(
      dados=>{ this.exibeLista(dados) },
      (error:any)=>console.log(error)
    );
  }

  loadcbbcategory(dados) {
    this.cbbcategory = dados.result.item;
    console.log(this.cbbcategory );
  }

我知道我的返回json将data.item中的数据返回给我

我该如何做一个能够根据其类获取和加载我的cbbcategory请求的函数?

export interface Categoria {
    id: Number;
    descricao: String;
    observacao: String;
    status: String;
}

Category.Service

getCombobox(){
    return this.http.get(Auth.url + this.nameClass + `?getComboBox=true`, { headers: { 'token': Auth.token } })
    .pipe(map(response => { return response }))
  }

3 个答案:

答案 0 :(得分:0)

  cbbcategory : any;
  loadCombobox() {
    this.categoriaService.getCombobox()
    .subscribe((err,res)=>{
        if(!err)
         {
            Categoria.save(res); 
         }

    });
  }

由于默认情况下任何rxjs调用产生的响应都是json形式,因此您直接创建Model.ts文件,并执行Model.save()直接将响应传递给它。

答案 1 :(得分:0)

在JSON上明确显示类别服务:

    getCombobox(){
        return this.http.get(Auth.url + this.nameClass + `?getComboBox=true`, { headers: { 'token': Auth.token } })
        .pipe(map(response => { return response.json() }))
      }

在您的组合框中

  cbbcategory : any;
  categoria: Categoria[];

  loadCombobox() {
    this.categoriaService.getCombobox()
    .subscribe(
      (dados: any[]) =>  this.categoria= dados,
      (error:any) => console.log(error)
    );
  }

答案 2 :(得分:0)

您可以尝试以下方法:

service.ts

getCombobox(): Observable<Categoria[]>{
        return this.http.get<Categoria[]>(Auth.url + this.nameClass + `?getComboBox=true`, { headers: { 'token': Auth.token } })
        .pipe(map(response => { return response }))
      }

component.ts

 cbbcategory: Categoria[];

  loadCombobox() {
    this.categoriaService.getCombobox()
      .subscribe(
      (dados: Categoria[]) => this.categoria = dados,
        (error: any) => console.log(error)
      );
  }