2017-09-13 3 views
0

이동 항상로드합니다. 가장 큰 문제는 인증 된 사용자 만 액세스 할 수 있도록 canLoad 가드가있는 경우입니다. 그런 다음 /login으로 갈 때마다 canLoad 가드를 통해 /login으로 다시 리디렉션되며 다시 canLoad 등으로 이동하므로 무한 루프가 생성됩니다. 그것에 대한 생각이나 해결 방법.각도 2 라우팅은 항상/루트를 통해

이상적으로 나는 공용 경로 /login과 전용 모듈 /을 갖고 싶습니다. 여기에는 전용 모듈과 함께 게으르게로드 될 공유 모듈이 포함됩니다. 내가 루트 루트를 사용하고자하는 이유로 접두사를 원하지 않습니다. /.

|_ core 
|_ shared 
|_ login 
|_ private 
|____ shared 
|____ core 
|____ dashboard 
|____ etc 

편집 :

enter image description here

난 당신이 0.chunk.js 민간 모듈 인로드 된 볼 수 있습니다 로그인 갈 때 : 여기 설명하기

이 스크린 샷입니다. / 경로에 정의되어 있고 / 경로에 있지 않을 때로드해서는 안됩니다.

+0

귀하의 질문은 무엇입니까? –

+0

루트 경로에'canLoad' 가드를 포함하면 무한 루프를 피하는 법. 또는 다른 말로하면'/ login'을 탐색 할 때 정의 된 루트 경로를 통과하지 않는 방법은 무엇입니까? –

+0

수정 사항을 확인하십시오. –

답변

0

로그인 경로에서 canActive을 제거하고 '경로에 canLoad: [LoginGuard]을 추가하십시오. 당신이 허리 경로가 경로 상에 있기 때문에, 그것은 지켜 질 필요가 없습니다.

const routes: Routes = [ 
    { path: '', loadChildren: './private/private.module#PrivateModule', canLoad: [LoginGuard] }, 
    { path: 'login', component: LoginComponent } 
]; 
+0

'LoginGuard'는 인증 된 사용자가'/ login' 페이지로 돌아가는 것을 방지합니다. 또한'canActivate'는 느린로드 모듈에 필요하지 않습니다. 그것은'canLoad'이어야합니다. –

+0

그의 경우 로그인 가드가 로그인 페이지로 보낸 다음 로그인 페이지로 로그인 가드로 전송하고 무한 루프로 이동합니다. 하나의 가드에서 같은 일이 처리 될 수 있습니다. –

+0

이 이제 canLoad로 변경되었습니다. –