개발환경: Angular 4
Angular 에서 링크를 사용할 때 아래의 속성을 사용한다.
- routerLink: 이동하려는 URL 지정
- routerLinkActive: 해당 URL 이동 시 class에 해당 값 넣어줌
이슈가 발생한 경우는 서브메뉴를 처리해야 하는 경우에 발생을 했다.
메인메뉴와 서브메뉴 둘다 routerLinkActive 속성이 발동이 되어야 했다.
아래와 같이 router path 설정 시 redirectTo 속성을 이용하여 2개의 URL에 매칭되는 routerLink 를 만들어 해결을 했다.
Main Menu
<ul class="manage_tab"> <li routerLink="/admin/user-management" routerLinkActive="on">사용자 관리</li> <li routerLink="/admin/equipment-management" routerLinkActive="on"><a routerLink="/admin/equipment-management/one">설비 관리</a></li> <li routerLink="/admin/alarm-setting" routerLinkActive="on">알람 설정</li> </ul>
1004lucifer
Sub Menu
<div class="facil_tab"> <ul> <li routerLink="/admin/equipment-management/one" routerLinkActive="on"><a>ONE</a></li> <li>|</li> <li routerLink="/admin/equipment-management/two" routerLinkActive="on"><a>TWO</a></li> <li>|</li> <li routerLink="/admin/equipment-management/three" routerLinkActive="on"><a>THREE</a></li> <li>|</li> <li routerLink="/admin/equipment-management/four" routerLinkActive="on"><a>FOUR</a></li> </ul> </div>
1004lucifer
route 설정
export const adminState: Routes = [ { path: 'admin', data: { authorities: ['ROLE_ADMIN'] }, children: [ { path: 'user-management', component: UserManagementComponent, resolve: { 'pagingParams': StandardResolvePagingParams }, data: { pageTitle: 'title.admin.userManagement' }, canActivate: [UserRouteAccessService], }, { path: 'equipment-management', children: [ { path: '', redirectTo: 'one', pathMatch: 'full', }, { path: 'one', component: OneManagementComponent, resolve: { 'pagingParams': StandardResolvePagingParams }, data: { pageTitle: 'title.admin.equipmentManagement.one' }, canActivate: [UserRouteAccessService], }, { path: 'two', component: TwoManagementComponent, resolve: { 'pagingParams': StandardResolvePagingParams }, data: { pageTitle: 'title.admin.equipmentManagement.two' }, canActivate: [UserRouteAccessService], }, ... ] } ] } ];
서브메뉴, 메뉴
댓글
댓글 쓰기