2017-11-23 1 views
0

現在、2つの問題がありますが、そのうちの1つが2番目の問題を引き起こす可能性が最も高いです。angular 2loadChildren、経路が考慮されていない

問題は、角度のあるプロジェクトのルートに2つのルートがあり、両方とも異なるモジュールのloadChildrenを使用することです。問題は、チレンルートが親ルートを気にしないということです。

例:

親= "認証"

子供= "ログイン"

しかし、私がアクセスできる(第二の問題は、私はにリダイレクト取得される)はlocalhost:4200 /ログイン、服用していません親の「auth」をURLに追加します。

ここに構造を示すプランカがありますが、私はそれをプランカ上で実行することはできませんでしたが、構造はどのように行っているかを示しています。

http://plnkr.co/edit/xcD15gkX3mcvCvXZvxTs

コード:

メインルート

export const appRoutes: Routes = [ 
    { 
     path: '', 
     pathMatch: 'full', 
     component: PageComponent, 
     loadChildren:() => PageModule 
    }, 
    { 
     path: 'auth', 
     component: AuthComponent, 
     loadChildren:() => AuthModule 
    } 
]; 

ページの路線

export const pageRoutes: Routes = [ 
    { 
     path: '', 
     pathMatch: 'full', 
     component: DashboardComponent 
    } 
]; 

認証経路

export const authRoutes: Routes = [ 
    { 
    path: '', 
    pathMatch: 'full', 
    redirectTo: 'login' 
    }, 
    { 
    path: 'login', 
    component: LoginComponent 
    } 
]; 

"RouterModule.forRoot(...)" およびインポートと各モジュール内で使用されるすべての3

だから再び: 訪問http://localhost:4200は、ログインする前に認証がありませんhttp://localhost:4200/login

に私をリダイレクトし、すべてで認証をロードしますが、ダッシュボードコンポーネントに行くこととしていません。

EDIT

が、これはあなたの問題を解決するかどう

答えて

0

わからないロードされたモジュールで子供に根から変更しましたが、サブモジュール及び遅延ロードされたルートが

RouterModule.forChild(authRoutes) 

経由でインポートする必要があります見てくださいhttps://angular.io/api/router/RouterModule

+0

チップのおかげで、悲しいことに私の問題を修正しないでもそれを壊した。そこでガイドラインに従うように変更されました。まだ立っている問題 – Fyllekanin

関連する問題