2017-04-06 54 views
0

我的孩子路線的作品很好,當創建它們喜歡:角2塊爲孩子的路線不createds如果生孩子的陣列befor路線對象

let routes: Routes = [ 
    { 
     path: '', 
     component: MainComponent, 
     children: [ 
      {path: 'a', loadChildren: '../+a/a.module.ts#AModule', canLoad: [AGuard]}, 
      {path: 'b', loadChildren: '../+b/b.module.ts#BModule', canLoad: [BGuard]} 
     ] 
    } 
]; 

,併爲所有模塊創建塊,當我嘗試之前初始化兒童這樣,所有的停止工作,並且我不噸有塊這個模塊:

let children: Routes = []; 

children.push({path: 'a', loadChildren: '../+a/a.module.ts#AModule', canLoad: [AGuard]}) 
children.push({path: 'b', loadChildren: '../+b/b.module.ts#BModule', canLoad: [BGuard]}) 

let routes: Routes = [ 
    { 
     path: '', 
     component: MainComponent, 
     children: children 
    } 
]; 

而這很奇怪,我認爲這是相同的代碼。

回答

0

作爲結果我創建2環境文件第一environment.a.ts具有路線的

export const environment = { 
    .... 
    {path: 'a', loadChildren: '../+a/a.module.ts#AModule', canLoad: [AGuard]} 
} 

和第二environment.b.ts具有途徑b

export const environment = { 
    .... 
    {path: 'b', loadChildren: '../+b/b.module.ts#BModule', canLoad: [BGuard]} 
} 

,我後可以用我的路線,如:

import {environment} from "../../environments/environment"; 
let routes: Routes = [ 
    { 
     path: '', 
     component: MainComponent, 
     children: environment.routes 
    } 
]; 

和塊正常創造

0

嘗試將兒童定義爲通用數組,而不是鍵入Router。

let children:any = []; 

children.push({path: 'a', loadChildren: '../+a/a.module.ts#AModule', canLoad: [AGuard]}) 
children.push({path: 'b', loadChildren: '../+b/b.module.ts#BModule', canLoad: [BGuard]}) 

let routes: Routes = [ 
    { 
     path: '', 
     component: MainComponent, 
     children: children 
    } 
]; 
+0

我tring,但它仍然不工作 –