【发布时间】:2019-08-03 15:03:15
【问题描述】:
我在我的 Angular 应用程序中实现了延迟加载。从 app.routes 文件中,我加载了 Login 和 Dashboard 模块,直到此时,延迟加载一切正常。我在尝试使用 loadChildrens 将其他子路由加载到 dashboard.routes 时遇到问题,即子项中的子项。
app.module
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { AppComponent } from './app.component';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
AppRoutingModule
],
bootstrap: [AppComponent]
})
export class AppModule { }
app-routing.module.ts
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
const routes: Routes = [
{
path: 'login',
loadChildren: 'app/modules/login/login.module#LoginModule'
},
{
path: 'dashboard',
loadChildren: 'app/modules/dashboard/dashboard.module#DashboardModule'
},
{ path: '**', redirectTo: 'login', pathMatch: 'full' }
];
@NgModule({
imports: [RouterModule.forRoot(routes)],
exports: [RouterModule]
})
export class AppRoutingModule { }
dashboard.module.ts
import { NgModule } from "@angular/core";
import { MainRoutingModule } from "@app/modules/main/main-routing.module";
import { MainLayoutComponent } from "@app/modules/main/views/main-layout/main-layout.component";
import { BlankComponent } from '../blank/blank.component';
@NgModule({
imports: [DashboardRoutingModule],
declarations: [DashboardComponent]
})
export class DashboardModule { }
dashboard-routing.module.ts
import { NgModule } from '@angular/core';
import { Routes, RouterModule } from '@angular/router';
import { DashboardComponent } from '../blank/blank.component';
const routes: Routes = [
{
path: '',
component: DashboardComponent,
children: [
{
path: 'clients',
loadChildren: './../clients/clients.module#CLientsModule'
},
{
path: 'users',
loadChildren: './../users/users.module#UsersModule'
},
{ path: '', redirectTo: '/users', pathMatch: 'full' }
]
}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule]
})
export class DashboardRoutingModule { }
clients.module
import { NgModule } from "@angular/core";
import { CommonModule } from '@angular/common';
import { ClientsComponent } from './clients.component';
import { CLientsRoutingModule } from './clients-routing.module';
@NgModule({
imports: [
CommonModule,
CLientsRoutingModule
],
declarations: [ClientsComponent]
})
export class CLientsModule { }
clients.routing
import { Routes, RouterModule } from '@angular/router';
import { NgModule } from '@angular/core';
import { CLientsComponent } from './clients.component';
const routes: Routes = [
{
path: '',
component: CLientsComponent
}
];
@NgModule({
imports: [RouterModule.forChild(routes)],
exports: [RouterModule]
})
export class ClientsRoutingModule { }
这是一个一般性错误。未捕获(承诺):TypeError:无法读取未定义的属性“拆分” TypeError:无法读取未定义的属性“拆分” 在 defaultUrlMatcher (http://localhost:4200/vendor.js:83027:28) 比赛时 (http://localhost:4200/vendor.js:85220:15) 在 ApplyRedirects.push../node_modules/@angular/router/fesm5/router.js.ApplyRedirects.matchSegmentAgainstRoute (http://localhost:4200/vendor.js:85066:18) 在....
【问题讨论】:
标签: angular split routing undefined lazy-loading