我有一个Angular 5应用程序,可以从Contentful中检索内容。其中一些内容是路线。我想在子RoutingModule
内设置如下:
const myRoutes: Routes = [
{ path: '', component: BaseComponent },
{ path: '**', component: FailComponent }
];
@NgModule({
RouterModule.forChild(myRoutes),
...
})
export class MyRoutingModule {
routesFromContentful = retrieveRoutesFromContentful();
routes.forEach((route:string) => {
myRoutes.push({ path: route, component: GenericComponent });
}
}
要明确:
GenericComponent
。这是有目的的。myRoutes
的新路线无法识别。 有没有办法识别这些路线?它们是否被识别,因为导出的类位于@NgModule
之后?
答案 0 :(得分:1)
要将路由推送到当前路由配置,您可以通过在router
依赖项实例上调用方法来推送这些路由,如下所示。
export class MyRoutingModule {
constructor(private router: Router){
this.loadRoutes();
}
loadRoutes(){
routesFromContentful = retrieveRoutesFromContentful();
routes.forEach((route:string) => {
myRoutes.push({ path: route, component: GenericComponent });
}
//reseting router configuration
this.router.resetConfig(routes);
}
}
或者您可以直接在router.config
对象中推送新路由。
export class MyRoutingModule {
constructor(private router: Router){
this.loadRoutes();
}
loadRoutes(){
routesFromContentful = retrieveRoutesFromContentful();
routes.forEach((route:string) => {
//adding routes to existing to configuration.
this.router.config.push({ path: route, component: GenericComponent });
}
}
}