Лучший способ сделать это - разработать Компонент оболочки (предложенный Дебора Курата в этом разговоре ngConf ), в котором будет размещено ваше представление после того, как пользователь войдет в систему.
Шаблон этого Компонента оболочки будет содержать боковую панель.Шаблон этого компонента оболочки также будет иметь router-outlet
для внутренней маршрутизации.
Так что ваша конфигурация Routes
будет выглядеть примерно так:
const appRoutes: Routes = [
{
path: '',
component: ShellComponent,
children: [
{
path: 'dashboard',
component: DashboardComponent
},
...
{
path: 'view',
component: ViewPostComponent
},
{
path: '',
component: PlaceholderComponent
}
]
},
{
path: 'login',
component: LoginComponent
},
{
path: '',
redirectTo: '/login',
pathMatch: 'full'
}
];
Шаблон для компонента оболочки:
<!--Markup for your Sidebar here-->
<router-outlet></router-outlet>
<!--This router outlet is for Components that will load through child routing-->
Шаблон для вашего компонента приложения:
<router-outlet></router-outlet>
Вот вам Образец StackBlitz для вашей ссылки.