Angular总是在第二次尝试中访问REST API URL

时间:2019-02-04 05:30:28

标签: angular rest django-rest-framework

我的应用程序具有angular js前端和在后端运行的Django Rest API。我正在这样向API发布请求

  public getData(section) {
        console.log("I am here getVAM");
        return this.http.get('http://localhost:8000/vamcomponent/'+section+'/')
            .map((response: Response) => {
             console.log("I am here getVAM2");
             return response.json()
            });
    }

我正在读取像这样的应用程序检索到的数据

 public getVamData(id,section): Observable<any> {

        this.getData(section).takeWhile(users => users.length > 0).subscribe(result =>{ 
        this.d=result;     
}, error => console.log(error));   
        console.log(this.d);
        for(var i=0;i<this.d[1].classes.length;i++){
                console.log(this.d[1].classes[i])
                return this.d[1].classes[i];

        }
      }
  }

问题是我只在第二次获取数据才能订阅。第一次尝试是 undefined ,第二次点击是从REST API获取数据。因此,在前端,只有单击两次该栏,我才能显示数据enter image description here

但是,当我从应用程序外部访问REST API时,我能够在所有尝试中获取数据。我在订阅中使用了 takeWhile(),以确保仅当我从REST API接收到数据时,我才会进行下一步,利用这些数据在应用程序中显示该数据。

0 个答案:

没有答案