延迟渲染路由器出口

时间:2020-05-09 15:09:13

标签: angular typescript angular6

是Angular6的新手,并且面对这种情况:

我在app.component.ts上有一个API。取得数据后,将其存储在会话存储中以供其他组件(即abcComponent)使用。

这里的问题是,当abcComponents尝试从会话中获取时,app.component中的API尚未完成,因此未将其存储在会话存储中。

使用路由器插座加载其他组件。

我尝试使用resolve,但是为每个组件调用了resolve服务。所以任何建议都会有用

2 个答案:

答案 0 :(得分:0)

您要在abccomponent中调用api,而不是app.component。和abccomponent应该具有某种微调器,以向用户显示正在加载数据。

答案 1 :(得分:0)

在Angular中解决此问题的常用方法是:

  1. 创建服务并将其标记为@Injectable
  2. 在服务中,调用带有返回可观察对象的Angular HttpClient模块的API。
  3. 在abcCompoent中注入服务并订阅调用API的可观察对象,然后在组件认为合适时使用数据。

我知道这听起来可能令人困惑,但是在这里,您可以看到Angular文档,其中包含一个很好的示例:Communicating with backend services using HTTP - Angular docs