首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >等待服务从API接收数据的Angular组件

等待服务从API接收数据的Angular组件
EN

Stack Overflow用户
提问于 2018-06-25 19:51:38
回答 2查看 90关注 0票数 0

嗨,在我的应用程序中,我有一个service和一个‘组件’。

我的service正在接收来自API的数据:

代码语言:javascript
复制
getNewShoppingCart() {
  this.serverService.getShoppingCart().subscribe(
    (data) => {
      this.basket.boughtItems = data;
      });
}

我的component有一些使用service接收的对象的方法。

由于component是在service获取数据之前呈现的,所以我在控制台中遇到了一些错误。

如何强制组件等待到数据加载完成?

EN

回答 2

Stack Overflow用户

发布于 2018-06-25 20:06:52

您需要在组件中添加null/ length检查。例如,如果您使用此对象this.basket.boughtItems从服务接收数据,则在组件中添加ngIf条件,如*ngIf="basket.boughtItems.length > 0“

票数 0
EN

Stack Overflow用户

发布于 2018-06-25 21:55:06

使方法返回Observable或直接使用服务。

代码语言:javascript
复制
getNewShoppingCart(): Observable<ItemsType> {
  return this.serverService.getShoppingCart()
}

在组件中创建一个BehaviorSubject字段。

代码语言:javascript
复制
shopingCart = new BehaviorSubject();

在ngOnInit上放入一些数据:

代码语言:javascript
复制
shopingCart.next(this.getNewShoppingCart())

在指向shopingCart的组件中使用async管道

在需要的地方从BehaviorSubject获取值,如下所示:

代码语言:javascript
复制
shopingCart.getValue()
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51022833

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档