我需要根据某些情况动态地路由页面。
{ path: ':locale/:id', component: HomePageCategory },
{ path: ':locale/:platform', component: PlatformPageCategory },
{ path: ':locale/contact', component: ContactPageCategory },
以上是我的路由配置。第一和第二是动态的。我需要首先存档所有情况。我已经基于canActivate编写了服务。
但是我需要以编程方式路由页面,例如
router.navigate()
router.navigateByUrl()
在这种情况下,您能告诉我如何做吗?
答案 0 :(得分:0)
根据您的信息,我建议您执行以下操作:
root component
并摆脱其他路由。
像这样
{ path: ':locale/:param', component: RootComponent}
在RootComponent
内,订阅路由器,并解析您的动态参数,然后根据该参数选择要呈现的组件。
RootComponent
的模板应仅包含<ng-container #host></ng-container>
,
它将用作要渲染的组件的宿主元素。
使用ComponentFactoryResolver
(此处为https://angular.io/guide/dynamic-component-loader的文档)渲染组件。