2016-09-11 7 views
0

중첩 된 하위 구성 요소로의 라우팅이 곧바로 작동 할 것으로 기대하면서 잠시 RC6을 수정 해 왔습니다. 그런 행운은 없습니다. 지금보고있는 효과는 기본 경로에 대한 redirectTo이 무시되고 대신 Angular가 첫 번째 하위 구성 요소로 곧장 이동한다는 것입니다.각도 2 라우터가 redirectTo를 건너 뛰고 자식 경로를 대신 사용합니다.

import { Route, RouterModule } from '@angular/router'; 
import { LandingPageComponent } from 'src/landing-page.component'; 
import { DepartmentModule } from 'src/department/department.module'; 

const routes: Route[] = [ 
    { path: '', redirectTo: 'landing-page', pathMatch: 'full' }, 
    { path: 'landing-page', component: LandingPageComponent }, 
    { path: 'department', loadChildren:() => DepartmentModule } 
]; 

export const appRoutingProviders: any[] = []; 
export const routing = RouterModule.forRoot(routes, {enableTracing:true}); 

당신은 landing-page에 데려다 것 더 URL을 입력 없다고 생각해야하지만 아니, 각도 후비는 내 능력 밖입니다 이유 department. 예상대로 그 시점 모두에서

, 나는 그때

<a [routerLink]="['../..']"> 

이 다시 한 수준을 탐색 할 필요가, 비록

import { Route, RouterModule } from '@angular/router'; 
import { DepartmentComponent } from './department.component'; 
import { DepartmentDetailsComponent } from './department-details.component'; 

const departmentRoutes: Route[] = [ 
    { path: '', component: DepartmentComponent }, 
    { path: ':id', component: DepartmentDetailsComponent } 
]; 

export const departmentRouting = RouterModule.forChild(departmentRoutes); 

이상한 것은 여기에 하위 경로를 탐색 할 수 있습니다 작품 . 아마도 두 문제 모두 관련이 있습니다.

내가 누락 된 아이디어가 누구에게 있습니까? plnkr은 여기에서 찾을 수 있습니다.

+0

은 예상되는 동작 무엇입니까 ? – micronyks

+0

버튼이있는 랜딩 페이지를 먼저로드합니까 (부서 45로 리디렉션 됨)? – micronyks

+0

물론 경로를 제공하지 않으면 '방문 페이지'에 도착합니다. –

답변

4

당신은 수입에서 DepartmentModule를 제거해야합니다 (AppMoule의 @NgModule에서 ())

imports: [ BrowserModule, MdButtonModule, 
      RouterModule, routing]   //<---removed DepartmentModule declaration 

작업, 아래와 같이 http://plnkr.co/edit/qoZ3YCwSz0mQ5o974Dt0?p=preview

+1

그리고'[routerLink]'도 수정되었습니다. –

+0

지연로드 모듈을 가져 오지 않도록하십시오. 게으른 로딩을위한 것입니다. Angular2는 자체적으로주의를 기울입니다. – micronyks

관련 문제