2016-09-13 6 views
1

실제 응용 프로그램에서 사용자가 인증되면 시작 구성 요소 (일반적으로 app.component.ts)를 체크인하려고합니다. 그렇지 않은 경우, 로그인 구성 요소로 라우트하려고합니다. 그러나 여기서 라우팅은 작동하지 않습니다. 각도 2 (RC6) - 시작 구성 요소의 라우팅이 작동하지 않습니다.

가 나는가 재생 될이고, 간단한 Plunker 예를 만듭니다

  1. 열기 live example
  2. 버튼을 클릭하여 "1 샘플로 이동"-> 것을, 모든
  3. 작동하지만 당신은 볼 수 있습니다 app/app.component.ts에 이미 동일한 라우팅 명령이 있지만 애플리케이션이 구성 요소로 라우팅하지 않습니다. 왜??

도움 주셔서 감사합니다. 당신이 setTimeout()로 포장하는 경우

답변

1

하는 것이

setTimeout(() => { 
    this.router.navigate(["/sample1", "2"]); 
}); 

Plunker example

잘 작동의 IT 기본 라우팅이 적용되지 않습니다 때문에 router.navigate()에 전화 후 발생과 같다.

나는 setTimout() 대신에 같은 것을 성취 할 수있는 더 좋은 방법이있을 것이라고 확신하지만 문제를 잘 보여줄 수 있다고 생각합니다.

예를 들어이 또한 기본 경로에 대한 canActivate 가드를 사용하고 거기에 router.navigate()을 할 수있는 동일한 동작

RouterModule.forRoot([ 
    { path: "", redirectTo: '/sample1/2', pathMatch: 'full' } 
    { path: "sample1/:param1", component: Sample1Component }, 
    { path: "**", component: HomeComponent } 
]) 

될 것입니다.

+1

너는 너무 빨랐어. 나는 똑같은 것을 쓰려고했다. :) 좋은 게시 –

+2

죄송합니다 ;-) 나는 이미 5000 점을 넘겼습니다. 연습은 마스터를 만듭니다. 그냥 포기하지 마라. –

+1

@ GünterZöchbauer : 답변 해 주셔서 감사 드리며 지칠 줄 모르는 지원을 부탁드립니다. 너 몇 번 나 도와 줬어! –

관련 문제