我的应用程序具有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获取数据。因此,在前端,只有单击两次该栏,我才能显示数据
但是,当我从应用程序外部访问REST API时,我能够在所有尝试中获取数据。我在订阅中使用了 takeWhile(),以确保仅当我从REST API接收到数据时,我才会进行下一步,利用这些数据在应用程序中显示该数据。