我最近刚将我的项目升级到Angular 6并遇到了这个问题。 ERROR in无法读取属性'loadChildren'为null 。当我编译项目时第一次出现此错误,并且在更新项目的其他部分时再次编译时,错误就会消失。
我跟着this,但没有成功。
早期使用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
]
};
}
}
答案 0 :(得分:1)
收集所有路线:adminRoutes
然后roleRoutes
,userRoutes
等,并将它们放在同一个档案中。
问题是,在构建路由时,Angular似乎不遵循多层链接。根据你提到的问题,这是我的猜测。
答案 1 :(得分:0)
我知道这是一个老问题,但问题似乎是使用 Routes 而不是 Route[]。我猜是传播运算符和打字稿“export declare type Routes = Route[];”不要一起玩。