我已经尝试寻找解决方案,大多数人建议使用解析器,但就我而言,我认为这太复杂了,因此我确实需要有关如何执行此操作的建议。
应用概述:我有一个允许用户登录(URL / app / login)的平台,一旦成功登录,他们将被重定向到仪表板(URL / app / dashboard)。当用户登录时,他们的令牌将存储在cookie中,并且我正在获取与此用户相关的多个数据。这将存储在组件dataServices
中。一切正常,但是问题是当用户重新加载浏览器时,dataServices
将被异步填充,因此,在dataServices
填充之前,将首先初始化一些高度依赖dataServices
的组件。我可以想到的一种方法是在“ dataServices”中使用观察者,等到数据填满后再通知主题。
有人对如何做到这一点有任何建议吗? (抱歉,我是新手,对不起)
我这样做的方法是让路由器插座在数据加载时不渲染
在上级组件中
<app-spinner *ngIf="loading$ | async else loaded"></app-spinner>
<ng-template #loaded>
<router-outlet></router-outlet>
</ng-template>
这样,依赖于正在加载的父数据的子组件才会在数据加载之前呈现。
您可以阅读我在本文中使用的这种模式。 https://medium.com/@adrianbrand/angular-state-management-with-rxcache-part-2-12de225e4de0