Добавить динамические маршруты в ленивый модуль - PullRequest
0 голосов
/ 05 декабря 2018

У меня ленивый модуль с некоторыми статическими и динамическими маршрутами.Вот мой ленивый модуль маршрутизации:

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(), но это кажется невозможным при использовании lazyмодульные маршруты, потому что ленивый модуль router.config не содержит дерева маршрутов).

Я ищу способ обновить маршруты ленивых модулей в другом месте, но не могу найти способ обновить ленивый модульмаршруты после запуска приложения.

...