我有一个http调用,它会在某个时候返回响应。当响应处于挂起状态时,我想向用户显示一条消息,或者添加一个微调器,告诉用户等待响应。如何在角度2中执行此操作?
答案 0 :(得分:1)
在HTML中创建一些像这样的加载器:
<div *nfIf="loader">
// some svg or whatever you want to represent loader
<div>
在HTTP调用中,您将加载变量设为true,并在响应时将其设为false。
public getData(anyParam: any): Observable<any> {
this.loader = true;
return this.http.get('anyUrl')
.do(response => {
// we are done! stop spinner !
this.loader = false;
})
.map(...);
}
答案 1 :(得分:0)
我猜你会为此实现Service
(https://angular.io/docs/ts/latest/tutorial/toh-pt4.html)。
所以会有一个函数getData()
:
public getData(anyParam: any): Observable<any> {
// start spinner !
return this.http.get('anyUrl')
.do(response => {
// we are done! stop spinner !
})
.map(...);
}
答案 2 :(得分:0)
_msgPopup.show("Wait while fetching data"); // Show popup
_http.get('anshumanpatil.com').subscribe(res=>{
_msgPopup.hide(); //call ended
});
答案 3 :(得分:0)
问题的解决方案是在启动请求之前声明变量(或显示微调器或任何内容),然后在请求完成时隐藏它。
您的代码类似于:
this.isLoading = true;
this.get().finally(() => this.isLoading = false);
它将直接显示然后隐藏它,下一部分只是处理模板中的ngIf显示。