2017-01-13 62 views
0

我正在研究具有兩個部分的應用程序。公共和私有(經過身份驗證和未經身份驗證的)部分。延遲加載模塊之間的路由

我的主要app路線的定義,像這樣:

const appRoutes: Routes = [ 
    { 
    path: '', 
    redirectTo: '/public/login', 
    pathMatch: 'full' 
    }, { 
    path: 'public', 
    loadChildren: 'app/public/public.module#PublicModule', 
    }, { 
    path: 'private', 
    loadChildren: 'app/private/private.module#PrivateModule' 
    } 
]; 

然後在PublicModule我:

const publicRoutes: Routes = [ 
    { 
     path: '', 
     component: FullscreenComponent, 
     children: [ 
      { 
       path: 'login', 
       component: LoginComponent, 
      }, 
      { 
       path: 'unlock', 
       component: UnlockComponent 
      } 
     ] 
}]; 

和種在我的私人模塊同樣的事情:

const privateRoutes: Routes = [ 
    { 
     path: '', 
     component: PrivatePageComponent, 
     children: [ 
      { 
       path: 'dashboard', 
       component: DashboardComponent, 
       canActivate: [AuthGuard] 
      }, { 
       path: 'general', 
       component: GeneralComponent, 
       canActivate: [AuthGuard] 
      } 
     ] 
    } 
]; 

我卡在哪裏是默認路由。當用戶請求/時,我預計這會重定向到/public/login,但它不會。它保持在/。如果我直接導​​航到/public/login,我會看到我期望看到的。

我不知道我錯過了什麼。

我遇到的第二個問題是/public不顯示/public/login但這並不重要。

我錯過了關於路線如何在這裏工作的東西?

而我的第三個問題是當我嘗試訪問/private/dashboard時,它重定向到/。我假設如果我可以使/重定向工作,這不會是一個問題。

+0

你能爲此創建一個plunkr嗎? – Aravind

+0

我會給它一個鏡頭。有沒有Plunkr類型的東西,我可以上傳我已有的zip文件? – Charlie

+0

我不確定。看看那裏,如果你找到一個像這樣分享的方式 – Aravind

回答

1

更改appRoutespublicRoutes到:

AppRoutes

const appRoutes: Routes = [ 
    { 
     path: '', 
     redirectTo: 'public', //<--- Change this route path 
     pathMatch: 'full' 
    }, { 
     path: 'public', 
     loadChildren: 'app/public/public.module#PublicModule', 
    }, { 
     path: 'private', 
     loadChildren: 'app/private/private.module#PrivateModule' 
    } 
]; 

PublicRoutes

const publicRoutes: Routes = [ 
    { 
     path: '', 
     component: FullscreenComponent, 
     children: [ 
      { 
       path: '',    // <--- Add this empty path route 
       redirectTo: 'login' 
      }, 
      { 
       path: 'login', 
       component: LoginComponent, 
      }, 
      { 
       path: 'unlock', 
       component: UnlockComponent 
      } 
     ] 
}]; 

這應該首先解決的三個問題你的兩個。

+0

如果我可以upvote你50次,我會的。很簡單。如果當然。我只是從根,重定向到公共,到組件。我試圖走得太遠,太快。我也爲私人路徑使用相同的東西。現在一切正常重定向。 – Charlie

+0

很高興爲您效勞! –

相關問題