I'm trying to get lazy loading to work for my app but it's one issue after another. I've gotten the main route to lazy load which is /admin
, now I want to add another route which is /admin/login
.
So I did this:
admin-router.module.ts
@NgModule({
imports: [
ComponentsModule,
SharedModule,
RouterModule.forChild([
{
path: '',
component: AdminAreaComponent,
children: [
{
path: 'login',
loadChildren: 'app/+admin-area/pages/login/login.module#LoginModule'
}
]
}
])
],
exports: [
RouterModule
],
declarations: [
AdminAreaComponent
]
})
export class AdminAreaRouterModule {}
login-router.module.ts
import {NgModule} from '@angular/core';
import {RouterModule, Routes} from '@angular/router';
// Global modules
import {ComponentsModule, SharedModule} from '../../shared';
// Components
import {LoginComponent} from '../login.component';
@NgModule({
imports: [
ComponentsModule,
SharedModule,
RouterModule.forChild([
{
path: '',
component: LoginComponent
}
])
],
exports: [
RouterModule
],
declarations: [
LoginComponent
]
})
export class LoginRouterModule {}
login.module.ts
import {NgModule} from '@angular/core';
import {ComponentsModule, SharedModule} from '../../../shared';
import {LoginComponent} from './login.component';
import {LoginRouterModule} from './router';
@NgModule({
imports: [
ComponentsModule,
SharedModule,
LoginRouterModule
],
exports: [
ComponentsModule,
SharedModule,
LoginRouterModule
]
})
export class LoginModule {}
The problem though is that as soon as I add the children
part, /admin
stops working all together, throwing the error Cannot match any routes. URL Segment: 'admin'
.
Is this not how you define child routes of a lazy loaded route? How can I fix it?