2017-11-23 4 views
0

현재 두 가지 문제가 있지만 그 중 하나가 두 번째 문제의 원인 일 가능성이 큽니다.angular 2loadChildren, 경로 경로 고려 안 함

문제는 각기 다른 프로젝트의 루트에서 두 모듈이 서로 다른 모듈의 loadChildren을 사용한다는 두 경로가 있다는 것입니다. 문제는 칠레 루트가 부모 루트를 걱정하지 않는다는 것입니다.

예 :

부모 = "인증"

아이 = "로그인"

하지만 난에 액세스 할 수 있습니다 (2 차 문제는 내가로 리디렉션 얻을 수있다) 로컬 호스트 : 4200/로그인은 복용하지 부모는 "auth"를 URL에 추가합니다.

구조를 보여주는 플 런커입니다. 플 런커로 실행하지는 못했지만 구조가 어떻게되어 왔는지 보여줍니다.

http://plnkr.co/edit/xcD15gkX3mcvCvXZvxTs

코드 :

주요 경로

export const appRoutes: Routes = [ 
    { 
     path: '', 
     pathMatch: 'full', 
     component: PageComponent, 
     loadChildren:() => PageModule 
    }, 
    { 
     path: 'auth', 
     component: AuthComponent, 
     loadChildren:() => AuthModule 
    } 
]; 

페이지 경로

export const pageRoutes: Routes = [ 
    { 
     path: '', 
     pathMatch: 'full', 
     component: DashboardComponent 
    } 
]; 

인증 경로

export const authRoutes: Routes = [ 
    { 
    path: '', 
    pathMatch: 'full', 
    redirectTo: 'login' 
    }, 
    { 
    path: 'login', 
    component: LoginComponent 
    } 
]; 

"RouterModule.forRoot (...)" 수입과 각 모듈에 사용 된 모든 3.

그래서 다시 : 방문 http://localhost:4200 로그인 전에 인증을 누락 http://localhost:4200/login

에 저를 리디렉션, 모든하지만 대시 보드의 구성 요소로 이동에서 인증을로드 가정 아니에요.

EDIT로드 모듈에 아이에게 루트에서 변경

답변

0

이 방법으로 문제가 해결됩니다 확실하지만, 서브 모듈과 게으른로드 노선

RouterModule.forChild(authRoutes) 

를 통해 수입해야하지 좀 봐 https://angular.io/api/router/RouterModule

+0

팁 주셔서 감사합니다, 슬프게도 내 문제를 해결하지 못했습니다 파산. 가이드 라인을 준수하기 위해 변경되었습니다. 여전히 서있는 문제 – Fyllekanin