延迟渲染路由器出口

Delay rendering router outlet

我是 Angular6 的新手,面临这种情况:

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

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

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

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

您想在 abc 组件中调用 api,而不是 app.component。并且 abccomponent 应该有某种微调器来向用户显示正在加载数据。

在Angular中解决这个问题的通常方法是:

  1. 创建服务并将其标记为 @Injectable
  2. 在服务中使用 Angular HttpClient 模块调用 API,returns observables。
  3. 在 abcCompoent 中注入服务并订阅调用 API 的可观察对象,然后根据组件的需要使用数据。

我知道这听起来可能令人困惑,但这里有 Angular 文档和一个很好的示例:Communicating with backend services using HTTP - Angular docs