我有一个角度应用程序,加载用户的相关信息(用户的收藏夹,选定的项目等)通过单独的API调用,当用户登录。
这是一个简单的GET API调用&在登录组件中,完成对此API的调用后,我将用户重定向到仪表板。
此API的结果在仪表板页面上使用。当用户刷新仪表板页面时,该对象为空。我尝试调用API是app component ng oninit方法,但在完成此API之前,访问仪表板组件中的对象的代码被执行。
如何等待API调用完成?
发布于 2021-11-10 21:20:53
您需要做的是确保仅在请求成功完成后才显示内容。您可以使用*ngIf
指令完成。有两种方法可以做到这点:
没有async
管道。
模板:
<ng-container *ngIf="userData">
<!-- Your dashboard code here -->
</ng-content>
控制器:
userData?: any;
...
ngOnInit() {
this.userDataService.get().subscribe(res => {
this.userData = res;
});
}
使用async
管道。
模板:
<ng-container *ngIf="userData$ | async">
<!-- Your dashboard code here -->
</ng-content>
控制器:
userData$?: Observable<any>;
...
ngOnInit() {
this.userData$ = this.userDataService.get();
}
https://stackoverflow.com/questions/69919361
复制相似问题