あなたの問題への正しい解決策は、周りのrouter-outlet
行く、しかし、1つの余分な部品を使用していない(RootComponent
それを呼び出すことができます)router-outlet
(RO1)とが、ナビゲーションとサイドメニューなし。 RO1では、コンポーネントNavMenuComponent
(ナビゲーション、サイドメニュー、および独自のrouter-outlet
RO2)をロードする必要があります。次に、子ルートを使用して、RO1のRootComponent
にNavMenuComponent
(ナビゲーションとサイドメニューを含む)またはLoginComponent
(ナビとサイドメニューを持たない)のいずれかがロードされるようにすることができます。 RO2には、あなたが今持っているようにコンテンツが読み込まれます。 RootComponent
を想定し
は、ルートは次のようになります、あなたのモジュール内のdeafultコンポーネントです:
const appRoutes: Routes = [
{ path: 'login', component: LoginComponent },
{
path: '',
redirectTo: 'login',
pathMatch: 'full'
},
{
path: 'app', component: NavMenuComponent,
children: [
{ path: 'youorldpath1', component: YourOld1Component }, //the path will /app/youroldpath1 instead of /youroldpath1
{ path: 'youorldpath2', component: YourOld2Component, canActivate: [CanActivateViaAuthGuard] },
{ path: '**', component: ErrorComponent }
]
},
{ path: '**', component: ErrorComponent }
];
RootComponent
だけ持つことができます。ここ
<router-outlet></router-outlet>
さらに詳しい情報:https://angular.io/guide/router#child-routing-component
を、私はそれを考えます非常に良い解決策ではありません。そして私はいくつかの標準的な解決策が存在すると思います。 –
それで、あなたがしようとしていることを理解していることを確認するために、Top NavとSlide Menuをレンダリングし、 ''でレンダリングした各ページに表示したいとします。あなたがそれらをレンダリングしたくない唯一の時間は、ログインページに当たったときです。 –
はい、あなたは私を正しく理解しました –