Deep linking
But it gets better! The router also supports deep linking into lazily-loaded modules.
To see what I mean imagine that the contacts module lazy loads another one:
contacts.ts:
import {Component, NgModule} from '@angular/core';
import {RouterModule} from '@angular/router';
@Component({...}) class AllContactsComponent {}
@Component({...}) class ContactComponent {}
const ROUTES = [
{ path: '', component: ContactsComponent },
{ path: ':id', component: ContactComponent, loadChildren: 'details.bundle.js' }
];
@NgModule({
imports: [RouterModule.forChild(ROUTES)]
})
class ContactsModule {}
details.ts:
@Component({...}) class BriefComponent {}
@Component({...}) class DetailComponent {}
const ROUTES = [
{ path: '', component: BriefDetailComponent },
{ path: 'detail', component: DetailComponent },
];
@NgModule({
imports: [RouterModule...