Рекурсивная маршрутизация вызывает ошибку превышения максимального стека
У меня есть 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 {}
Очевидно это было предположительно исправлено, как показано здесь, но я обновил до последней версии Cli, которая 1.5.0
но проблема все еще там.
1 ответ
Я обнаружил, что изменяя эту строку:
loadChildren: 'app/routes/+dashboard/routes/+pages/routes/+page/page.module#PageModule'
Для того, чтобы:
loadChildren: loadModule
куда loadModule
экспортируется function
:
export function loadModule() {
return PageModule;
}
В теории вы можете сделать () => PageModule
тоже, но это приведет к лямбда-ошибке, поэтому вы должны использовать экспортированную функцию, как показано выше.
Я надеюсь, что это помогает кому-то еще.