您好,我的应用中有一个service
和一个“组件”。
我的service
正在从API接收数据:
getNewShoppingCart() {
this.serverService.getShoppingCart().subscribe(
(data) => {
this.basket.boughtItems = data;
});
}
我的component
有一些使用service
接收到的对象的方法。
由于component
是在service
获取数据之前渲染的,因此控制台中存在一些错误。
如何强制组件等待数据加载完毕?
答案 0 :(得分:0)
您需要在组件中添加 null / length 。例如,如果您使用该对象 this.basket.boughtItems 从服务接收数据,则在ngIf条件中添加组件,例如* ngIf =“ basket.boughtItems.length> 0”
答案 1 :(得分:0)
使方法返回Observable或直接使用服务。
getNewShoppingCart(): Observable<ItemsType> {
return this.serverService.getShoppingCart()
}
在组件中创建一个BehaviorSubject字段。
shopingCart = new BehaviorSubject();
在ngOnInit上放入一些数据:
shopingCart.next(this.getNewShoppingCart())
在组件中使用async管道指向shopingCart
在需要的地方从BehaviorSubject获取值,如下所示:
shopingCart.getValue()