我有一个带有一些静态和动态路由的惰性模块。 这是我的惰性模块路由:
const routes: Routes = [
RouteGeneratorHelper.generateRoutes(UserModel),
RouteGeneratorHelper.generateRoutes(HeroesModel),
{
path: '',
redirectTo: 'home',
pathMatch: 'full',
},
{
path: '',
redirectTo: 'home',
pathMatch: 'full',
},
{
path: 'home',
component: HomePageComponent
},
{
path: '404',
component: NotFoundPageComponent
},
{
path: '**',
redirectTo: '404'
}
];
@NgModule({
imports: [
RouterModule.forChild(routes)
],
exports: [
RouterModule
]
})
export class MyLazyRoutingModule { }
RouteGeneratorHelper.generateRoutes(UserModel)
返回从给定模型动态生成的Route对象。
在JIT中它就像一个魅力,但在AOT中却不起作用,因为angular不允许在装饰器中使用函数。
一种解决方法是在NgModule装饰器之外调用路由生成。这意味着加载模块时,我必须在某处调用RouteGeneratorHelper.generateRoutes
方法。
但是,现在的问题是,无法更改惰性模块路由配置(您可以通过更改router.config
并调用router.resetConfig()
来更新非惰性模块路由,但是似乎无法使用延迟模块路由,因为延迟模块router.config
不包含路由树)。
我正在寻找在其他地方更新我的惰性模块路由的方法,但是一旦应用程序运行,我就找不到一种方法来更新惰性模块路由。