如果你想偷懶加載模塊,不導入它,你在這裏所做的:如果你加載模塊
import { LazyModule } from './lazy/lazy.module';
...
@NgModule({
imports: [ BrowserModule, RouterModule.forRoot(routes), LazyModule ]
(使用:
的src/app.tsimport
)它將被捆綁到主模塊中而不是分離的塊。
被替換爲:
@NgModule({
imports: [ BrowserModule, RouterModule.forRoot(routes) ]
那麼你的路線應該是這樣的:
const routes = [
{
path: '',
component: MainComponent,
children: [
{
path: '',
component: DummyComponent
},
// should be rendered as a CHILD of my MainComponent .. !!
{
path: 'lazy',
loadChildren: 'src/lazy/lazy.module#LazyModule'
}
]
}
];
注意loadChildren
路徑從src
開始了。
對於的src /懶/ lazy.module.ts: 你應該把你的路線確定(因爲它是兒童需要的模塊)但你的路線應該是空的,因爲他們會通過以下後綴他們的父母的路線。 (這裏:'/ lazy')。
所以,如果你把:
const routes = [
{
path: 'lazy',
component: LazyComponent
}
];
您希望匹配/lazy/lazy
使用你的懶惰組件,這是不是你想要的。
而是使用:
const routes = [
{
path: '',
component: LazyComponent
}
]
這裏的工作Plunkr:https://plnkr.co/edit/KdqKLokuAXcp5qecLslH?p=preview
太好了!非常感謝! :) – mxii