Как загрузить детский асинхронный с angular-router-loader

У меня есть структура папок, как:

 - app
   -core
   -vacancy

в core папка у меня есть app.routing.ts где я хотел бы асинхронно добавить маршрут к вакансии.

Я сделал это так:

export const routing = RouterModule.forRoot([
        {
            path: '',
            component: HomeComponent,
            canActivate: [AuthGuard]
        },
        {
            path: 'vacancy',
            loadChildren: '../vacancy#VacancyModule'
        },
        {
            path: '**',
            component: NotFoundComponent
        }
    ], {useHash: true}
);

я получаю ошибку:

Не могу решить "..\ вакансия"

несмотря на то, что в папке есть папка вакансии app а внутри вакансии есть файл vacancy.module.ts который выглядит как:

// some imports here
@NgModule({
    declarations: [
        VacancyBaseComponent
    ],
    imports: [
        CommonModule,
        FormsModule,
        RouterModule.forChild(routes),
    ],
})

export class VacancyModule {
    public static routes = routes;
}

Есть идеи, что я делаю не так?

2 ответа

Решение

Немного опоздал. Если вы еще не поняли, попробуйте это:

loadChildren: 'app/vacancy/vacancy.module#VacancyModule'

UPD: актуальное время 2022-12-26

В Angular версии 8 синтаксис строки для спецификации маршрута loadChildren устарел в пользуimport()синтаксис. Вы можете выбрать отложенную загрузку на основе строк (loadChildren: './path/to/module#Module'), включив маршруты с отложенной загрузкой в ​​файл tsconfig, который включает файлы с отложенной загрузкой в ​​компиляцию.

По умолчанию Angular CLI генерирует проекты с более строгим включением файлов, предназначенным для использования с синтаксисом import().

https://angular.io/guide/lazy-loading-ngmodules#create-a-feature-module-with-routing

Другие вопросы по тегам