문제에 대한 올바른 해결책은 주위 router-outlet
을 이동하지만, router-outlet
(RO1)와 (RootComponent
를 호출 할 수 있습니다) 하나 개의 추가 구성 요소를 사용하지만, 탐색 및 사이드 메뉴가없는 것은 아니다 . RO1에서 컴포넌트 인 NavMenuComponent
을로드해야합니다 (nav, 사이드 메뉴 및 자체 router-outlet
RO2 포함). 그런 다음 하위 경로를 사용하여 RO1에서 (탐색 및 사이드 메뉴가 있음) 또는 LoginComponent
(탐색 및 사이드 메뉴 없음) 중 하나가로드되었는지 확인하십시오. RO2에는 현재 콘텐츠가로드됩니다.
모듈의 deafult 구성 요소가 RootComponent
입니다 가정, 경로는 다음과 같이 표시됩니다
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를 렌더링하고 각 페이지에서 렌더링 할 때 ''에 넣기를 원합니다. 당신이 그들을 렌더링하고 싶지 않은 유일한 시간은 로그인 페이지에 충돌했을 때입니다. –
예, 당신이 나를 잘 이해했습니다 –