2017-04-14 1 views
1

가드를 사용하여 요청한 페이지에 도달하기 전에 사용자를 인증합니다.CanActivate Guard 내에서 URL 세그먼트를 얻는 방법

특정 유스 케이스는 사용자는 내가 PARAMS하고 URL 세그먼트 (모두를 검색하는 데 필요한 경비 내에서 https://myserver.com/the-page-i-want?par1=val1&par2=val2

같은 일부 검색어 매개 변수가있는 URL을 입력하는 예견 즉 -page-i-want이 경우). 이를 위해 나는 코드가 queryParams 변수가 실제로 쿼리 문자열에 전달 된 매개 변수를 포함하는 객체로 가득이다 실행할 때 내가 볼 무엇 코드

export class AuthGuard implements CanActivate { 

    constructor(private router: Router) {} 

    canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot) { 
        const url = state.url; 
        const queryParams = route.queryParams; 
        // some other logic 
    } 

} 

의 다음 조각을 구현했습니다. 변수 url은 paramers를 포함한 전체 url 문자열을 포함합니다 (즉, ).이 경우 par1 = val1 & par2 = val2을 포함합니다. 나는 route 매개 변수의 값을 검사하는 경우

내가 찾고 있어요 정보 (즉, 단지 더 - 페이지 싶다)가 _urlSegment 속성에 어딘가에 깊은 저장되지만 제공되지 않습니다 것을 알 수 있습니다 API를 통해

가 나는 URL 세그먼트를하는 방법에 대한 어떤 제안이 매우 많이 주시면 감사하겠습니다 3.4.9

각도 라우터와 각도 v2.4.9을 실행하고 있습니다.

답변

0

대신 route.url[0].path을 사용해야합니다. 당신이

+0

UrlSegment는 불행하게도 내 경우 경로 스냅 샷에 의해 반환 된 URL이 빈 상태 (empty)의 배열 귀하의 path에 액세스 할 수 있습니다 후 ActivatedRouteSnapShot 문서에 따르면, route.urlUrlSegment의 배열을 돌려줍니다. 이것이 내가 질문 한 이유입니다. – Picci

+0

'console.log (route.url)'이 빈 배열을 표시한다는 것을 의미합니까? 음, 이상합니다. 당신의 노선 구성을 가질 수 있습니까? –

관련 문제