2017-04-06 1 views
2

안녕하세요 params가 있는지 여부에 따라 다른 페이지를 열 수 있는지 궁금합니다.params가있는 경우 다른 페이지로드

{ 
     path: 'page1', 
     component: Page1, 
     canActivate: [AuthGuard], 
     children: [ 
     { 
      path: 'page1/:test', 
      component: Page2, 
      canActivate: [AuthGuard] 
     } 
     ] 
    }, 

그리고 그들에게 별도의

{ 
     path: 'page1', 
     component: Page1, 
     canActivate: [AuthGuard] 
    }, 
    { 
     path: 'page1/:test', 
     component: Page2, 
     canActivate: [AuthGuard] 
    } 

가 어떻게이 효과를 달성 할 수 갖는

나는 다음과 같은 두 가능성을 시도? 이 두 옵션을 사용하면 test 매개 변수가 추가 되더라도 브라우저가 Page1을 열 수 있습니다. 또는 다른 명명 규칙을 사용해야합니까? (그렇지 않을 경우)

+0

'test' 매개 변수가있는 경우'Page1'을로드하지 않으시겠습니까? –

+0

@ Maximus. 그리고'Page1'에서 특정 매개 변수로 특정 버튼을 누르는 경우'Page2'로 리디렉션하고 싶습니다. – Ivaro18

+0

두 번째 구성이 제대로 작동 했어야합니다. –

답변

1

아아 나는 플 런커 (감사 @ 맥시 무스)를 만들어 냈습니다. 내가으로 이동했다

: :8080/page1?test=something 대신

:8080/page1/something의는 구성은 참으로 정확했다. 불편을 끼쳐 드려 죄송합니다.

0

경로을 선언 할 때 중요합니다. 특정 사항은 처음에 선언해야합니다. 코드를 다음으로 대체하십시오.

{ 
     path: 'page1/:test', 
     component: Page2, 
     canActivate: [AuthGuard] 
    }, 
    { 
     path: 'page1', 
     component: Page1, 
     canActivate: [AuthGuard] 
    } 
+0

라우터는 경로를 일치 시키려고하기 때문에 여기서는 순서가 중요하지 않습니다. 모든 URL 세그먼트가 사용됩니다. 따라서'page1/some' URL로 첫 번째 블록'path : 'page1'이 일치하지 않습니다. –

+0

' Page1' – Ivaro18

+0

@ Ivaro18, 당신이 보여준 라우터 설정이 작동해야하고, 문제가있는 곳을 알려주지 않아도된다는 점 때문에 plunker를 설정하십시오 –