2017-08-18 86 views
1

應用程序運行正常,但上傳子路由也可以不經過'/ upload'訪問。例如'/ photo','/ advertisement'。這不應該發生。我不知道爲什麼會發生這種情況。如果有人知道解決方案,請回復。如何在角4.3.1中實現嵌套的延遲加載?

app.routing.ts

{ path: '', redirectTo: '/dashboard', pathMatch: 'full'}, 
{path: '', loadChildren: 'app/campsite/campsite.module#CampsiteModule'}, 
{path: 'login', loadChildren: 'app/login/login.module#LoginModule'} 

campsite.routing.ts

path: '', component: CampsiteComponent, children: [ 
{path: 'dashboard', component: HomeComponent, canActivate: [AuthGuard]}, 
{path: 'gallery', component: GalleryComponent, canActivate: [AuthGuard]}, 
{path: 'upload', loadChildren: './upload/upload.module#UploadModule', canActivate: [AuthGuard]} 
] 

upload.routing.ts

path: '', component: UploadComponent, children: [ 
{path: 'photo', component: PhotoComponent, canActivate: [AuthGuard]}, 
{path: 'advertisement', component: AdvertisementComponent, canActivate: [AuthGuard]}, 
{path: 'video', component: VideoComponent, canActivate: [AuthGuard]}, 
{path: 'logo', component: LogoComponent, canActivate: [AuthGuard]}, 
{ path: 'photo', pathMatch: 'full', redirectTo: 'photo' } 
] 

Lazy Component Upload is loading in App Component Routing too

回答

0

這是一個錯誤: https://github.com/Greentube/localize-router/issues/45。 。:(

我有同樣的問題,我認爲一個良好的前進道路 - 這是不是最好的,因爲你會看到 - 是不是懶加載嵌套模塊直到更正此問題:

  1. 導入UploadModuleCampsiteModule
  2. 聲明所有的航線CampsiteModule

...這是非常,非常醜陋,難以維護。

上面的鏈接中有關於翻譯的註釋,但我沒有嘗試。 (這也似乎是一個奇怪的黑客攻擊。)

僅供參考,如果你看的WebPack如何生成的模塊(從ng serve和這樣的),你可能會看到只有campsite.module.chunk.js,不campsite.module.chunk.js一起upload.module.chunk.js

祝你好運!

+0

儘管如此,試試Angular 4.3.6。 :) – Gustave

+0

如果我遵循上述兩個步驟,那麼它不能再延遲加載。它發生的角度相同4.3.6 – Garima

+0

我看到 - 你懶惰地加載模塊兩次。 :)(我需要更多的咖啡,並且我切換到了decaf,這顯然不起作用。) – Gustave