【发布时间】:2019-08-01 15:25:53
【问题描述】:
我正在使用 Angular Resolver 在显示路由之前从服务器预取数据,因此页面不会加载为空,我们对这个原则很好。
我现在的问题是如何使用相同的Resolver 在没有路由的情况下从服务器预取数据?为了解释更多我的问题是我的屏幕草图:
在我的应用程序的 HeadreComponent 上,我需要进行一些 api-call 以获取 person.firstName 和 person.lastName 但标题没有定义路由,因为它应该显示在第一页 (http:localhost:4200\家)。
所以我不能像这样在路由配置中使用常规语法来调用解析器:
{path: 'home', component: HomeComponent, resolve: {personInfos: PersonInfoResolver}}
我可能会遗漏一些我正在开始 Angular 开发的东西,所以请善待:D
【问题讨论】:
-
您可以创建一个具有空路径且没有组件的父级,并将您的应用组件包含为该路由的子级。这将使您的应用程序组件与您的标头一起路由,从而可以使用解析器。
-
@trichetriche 你能解释一下吗?你的意思是用
{path: '', component: HeaderParentComponent, resolve: {personInfos: PersonInfoResolver}}创建一个 HeaderParentComponent 吗? -
是的,从您的应用组件中删除标题。使其出现在您的路由配置中。然后,您可以访问解析器。
-
在这种情况下,我认为我应该为孔横向组件执行此操作,例如 NavigationComponent、FooterComponent 等……我说得对吗?它将是:
{path: '', component: ParentComponent, resolve: {list all my api resolvers here ...}},而我 ParentComponent 的 html 部分将是:<app-header> <router-outlet> <app-footer> -
取决于您的期望,但可能是这样。如果我是你,我会先加载没有数据的页面,因为页眉/页脚是应用程序的一部分,永远不会移动。
标签: angular api angular-resolver