4

角度2のルーティングに疑問があります。 私はログイン画面を持っています。ログインダッシュボードと他のページには、ログインに使用されないヘッダーとフッターがあります。角度2のルーティング

const routes: Routes = [ 
{ 
    path:'', 
    redirectTo: '/login', 
    pathMatch: 'full' 
}, 
{ 
    path:'login', 
    loadChildren: './auth/auth.module#AuthModule', 
}, 
{ 
    path: 'dash', 
    loadChildren: './dash/dash.module#DashModule', 
    canActivate:[AuthGuard], 
    data: { 
     preload: true 
    } 
}, 
{ 
    path: 'project', 
    loadChildren: './project/project.module#projectModule', 
    canActivate: [AuthGuard], 
    data: { 
     preload: true 
    } 
} 
]; 

のでapp.component.htmlのルータ・アウトレットへのロード。 現在、私はdash.component.htmlで

<ks-header></ks-header> 
<router-outlet></router-outlet> 

のように、すべてのモジュールのhtmlでこのルータ・アウトレットをヘッダコンポーネントを使用する必要がありますが、他のダッシュ関連の負荷の子アウトレットです。
他のモジュールと同じです。 共通のヘッダー/サイドバーを表示する他の効果的な方法はありますか? 私はisloginがlogined決定またはません

<ks-header [userInfo] ="userInfo" [hidden]="isLogin"></ks-header> 
<ks-sidebar [hidden]="isLogin"></ks-sidebar> 

ようapp.component.htmlでそれを試してみました。しかし、私はそれが良い考えだとは思わない。

+2

ヘッダーとサイドバーのみを非表示にする必要がある場合は、オーバーヘッドが大きすぎるため、2番目のルータアウトレットには向かないでしょう。しかし、ヘッダーとサイドバーはDOM内にありますが、visibleプロパティだけがhiddenに設定されているので、ここでは[hidden]を使用しないでください。私は* ngIf = "isLogin"が良いと思います。 – seveves

+0

[tag:router]のタグの説明から:*ルータは、複数のネットワークにデータパケットを転送するデバイスです。 URL ROUTINGまたはシングルページアプリケーションルートに関する質問でこのタグを使用しないでください。 – connexo

+0

@connexoの申し立てによって修正されます。 – user3118041

答えて

1

ネストされたルートを使用する必要があります。

テンプレートページとログインページの間のルーティングとして、ベース用のもの。

秒とネストされた一つが

HOME, ABOUT, CONTACT ... 

あなたはhereからネストされたルートについての詳細を学ぶことができるようにテンプレートページ間のrouteingを達成しなければなりません。それで簡単な説明。

あなたの似たようなものがanother questionです。 Namekの答えが役に立つようです。

関連する問題