递归路由导致最大堆栈超出错误
Recursive routing causes maximum stack exceeded error
我有一个 PageModule
在其路由中引用自身。如果我删除循环依赖项,启动应用程序然后再次添加它,它就会工作。但是,如果我停止服务器并在循环依赖已经存在的情况下再次启动它,则不会。我该如何解决这个问题?
我有这个路由器模块:
const routes: Routes = [
{
path: '',
component: PageComponent,
children: [
{
path: ':pageId',
loadChildren: 'app/routes/+dashboard/routes/+pages/routes/+page/page.module#PageModule'
}
]
}
];
@NgModule({
imports: [RouterModule.forChild(routes)]
})
export class PageRouterModule {}
然后将其导入 PageModule:
@NgModule({
imports: [
PageRouterModule
],
exports: [PageRouterModule],
declarations: [PageComponent]
})
export class PageModule {}
显然这应该已修复 here,但我已经升级到最新的 cli 版本 1.5.0
但问题仍然存在。
我发现改变这一行:
loadChildren: 'app/routes/+dashboard/routes/+pages/routes/+page/page.module#PageModule'
收件人:
loadChildren: loadModule
其中 loadModule
是导出的 function
:
export function loadModule() {
return PageModule;
}
理论上您也可以 () => PageModule
但这会导致 lambda 错误,因此您必须使用如上所示的导出函数。
我希望这对其他人有帮助。
我有一个 PageModule
在其路由中引用自身。如果我删除循环依赖项,启动应用程序然后再次添加它,它就会工作。但是,如果我停止服务器并在循环依赖已经存在的情况下再次启动它,则不会。我该如何解决这个问题?
我有这个路由器模块:
const routes: Routes = [
{
path: '',
component: PageComponent,
children: [
{
path: ':pageId',
loadChildren: 'app/routes/+dashboard/routes/+pages/routes/+page/page.module#PageModule'
}
]
}
];
@NgModule({
imports: [RouterModule.forChild(routes)]
})
export class PageRouterModule {}
然后将其导入 PageModule:
@NgModule({
imports: [
PageRouterModule
],
exports: [PageRouterModule],
declarations: [PageComponent]
})
export class PageModule {}
显然这应该已修复 here,但我已经升级到最新的 cli 版本 1.5.0
但问题仍然存在。
我发现改变这一行:
loadChildren: 'app/routes/+dashboard/routes/+pages/routes/+page/page.module#PageModule'
收件人:
loadChildren: loadModule
其中 loadModule
是导出的 function
:
export function loadModule() {
return PageModule;
}
理论上您也可以 () => PageModule
但这会导致 lambda 错误,因此您必须使用如上所示的导出函数。
我希望这对其他人有帮助。