angular - 向惰性模块添加动态路由
问题描述
我有一个带有一些静态和动态路由的惰性模块。这是我的惰性模块路由:
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
不包含路由树)。
我正在寻找一种在另一个地方更新我的惰性模块路由的方法,但是一旦应用程序运行,我就找不到更新惰性模块路由的方法。
解决方案
推荐阅读
- gradle - IDEA 报告 build.gradle.kts 中 ShadowJar 任务的错误,而 ./gradlew run 有效
- python - 使用 Beautifulsoap 提取特定值
- vue.js - 在 vue-i18n 的子组件中使用基于组件的翻译
- android - 在 Android 中创建自定义 InputMask
- flutter - FileSystemException:操作系统错误:Google Pixel 3 中的权限被拒绝
- python - 递归因 None 对象而失败
- mysql - 将所有行分组为单行以获取 SQL 中的上下文数据
- python - s3fs read_block 与分隔符前瞻?
- angularjs - 产品价格页面上的角度变量在谷歌结构化工具上引发错误
- python - 如何在 python 3 中使用 pint Quantity 执行 numpy 矩阵乘法?