2016-11-25 84 views

回答

8

如果你想偷懶加載模塊,不導入它,你在這裏所做的:如果你加載模塊

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

+0

太好了!非常感謝! :) – mxii

相關問題