我有一个角度项目,我想创建某种导航菜单。这个想法是应用程序的所有链接都放在顶级NavigationComponent中,其他路由是它的子节点并加载到它的路由器出口。应用程序路线看起来像这样:
const appRoutes: Routes = [
{ path: 'login', component: LoginComponent },
{
path: '',
component: NavigationComponent,
children: [
{ path: 'somepage', component: SomePageComponent },
{ path: 'module1', loadChildren: 'app/modules/module1.module#Module1Module' },
{ path: 'module2', loadChildren: 'app/modules/module2.module#Module2Module' },
]
},
// otherwise redirect to 404
{ path: '**', component: PageNotFoundComponent }
];
现在我想添加自定义RouterReuseStrategy
,但是当我导航到某些未加载的子模块路径时,我无法在shouldReuseRoute()
方法中获取未来的路径网址。
例如,如果我导航到未来路线'/module1/someRouteOfModule1'
的{{1}}中的routeConfig.path
,则仅ActivatedRouteSnapshot
,'module1'
数组中不会有其他路线pathFromRoot
路线的一部分,我也无法正确保存该页面。
然后,之后,app导航到该模块的其他路线,可以从pathFromRoute数组接收整个路线,一切正常。
有人遇到过这个问题吗?可能有预加载延迟加载模块路由的方法吗?
答案 0 :(得分:0)
我在延迟加载方面遇到了类似问题,并通过为每条路径设置密钥来解决此问题。
const appRoutes: Routes = [
{path: "dashboard", loadChildren: "./dashboard/dashboard.module#DashboardModule", data: { key: "dashboard" }},
,
];