Angular 06: ОШИБКА в Невозможно прочитать свойство 'loadChildren' нулевого значения при компиляции - PullRequest
0 голосов
/ 15 мая 2018

Я недавно обновил свой проект до Angular 6 и столкнулся с этой проблемой. ОШИБКА в Невозможно прочитать свойство 'loadChildren' с нулевым значением . Эта ошибка возникает впервые, когда я компилирую свой проект, и при повторной компиляции при обновлении других частей проекта ошибка исчезает.

Я следовал за этим , но безуспешно.

Раньше он работал правильно с Angular 5.

Это мой RoutingModule:

import { NgModule } from '@angular/core';
import { RouterModule } from '@angular/router';

import { adminRoutes } from '@ui/admin-module';
import { HomeComponent } from './home/home.component';
import { LayoutComponent } from './layout/layout.component';

@NgModule({
  imports: [
    RouterModule.forRoot([
      {
        path: '',
        component: LayoutComponent,
        children: [
          {path: '', redirectTo: 'home', pathMatch: 'full'},
          {path: 'home', component: HomeComponent},
          ...adminRoutes,
        ]
      }
    ])
  ],
  exports: [
    RouterModule
  ]
})
export class AppRoutingModule {
}

Проблема в adminRoutes , который, когда я удаляю, ошибка компиляции исчезает.

Пожалуйста, помогите мне понять, что является причиной проблемы? Кроме того, дайте мне знать, если есть больше деталей, которые я должен предоставить. Заранее спасибо.

РЕДАКТИРОВАТЬ: Предоставление административных маршрутов и сведений о модуле.

Административные маршруты

    import {ModuleWithProviders, NgModule} from '@angular/core';
import {Route, RouterModule, Routes} from '@angular/router';

import { LayoutComponent } from './core';
import { designationRoutes } from './modules/designations';
import { organizationRoutes } from './modules/organizations';
import { rolesRoutes } from './modules/roles';
import { templateRoutes } from './modules/templates';
import { userRoutes } from './modules/users';

export const adminModuleRoutes: Routes = [
  ...rolesRoutes,
  ...userRoutes,
  ...designationRoutes,
  ...organizationRoutes,
  ...templateRoutes
];

export const adminRoutes: Routes = [
  {
    path: 'admin',
    component: LayoutComponent,
    children: [
      { path: '', pathMatch: 'full', redirectTo: 'roles' },
        ...adminModuleRoutes
    ]
  }
];

Административный модуль

export class AdminModule {
  static forRoot(configProvider: Provider[]): ModuleWithProviders {
    return {
      ngModule: AdminModule,
      providers: [
        ...configProvider
      ]
    };
  }
}

1 Ответ

0 голосов
/ 15 мая 2018

Соберите все ваши маршруты: adminRoutes, а затем roleRoutes, userRoutes и т. Д. И поместите их в один файл.

Проблема в том, что при построении маршрутов Angular, похоже, не следует многослойным ссылкам. Это мое предположение, основанное на вопросе, который вы также упомянули.

...