2016-10-28 1 views
1

로드 된 경로에 대한 액세스 방법을 찾고 있습니다. 처음에 경로 변경에angular2 지시어에서 옵션을 사용하여 현재 경로를 얻는 방법

는 다음과 같이 라우터 이벤트로 구독 할 수 있습니다 :

@Directive({ selector: '[myDirective]' }) 
export class TestDirective { 

    constructor(private _router: Router) { 
     this.doAction() 
    } 


    doAction(): void { 
     this._router.events 
      .filter((event: Event) => event instanceof NavigationEnd) 
      .subscribe(event => { 
       /// ... get current route data 
      }) 
     } 

    } 
} 

주요 문제는 방법) (가입에 현재 경로 데이터를 얻을 수 있다는 점이다 ???

각도 2 문서와 검색 결과가 없습니다.

답변

2

문제점에 대한 해결책이 있습니다. 시도해보십시오.

import { Router, ActivatedRoute } from '@angular/router'; 

currentRoute:any; 

constructor(private router: Router, private activatedRoute: ActivatedRoute,) {} 


    ngOnInit() { 
    this.router.events.subscribe((url) => { 
     this.currentRoute = url; 
     console.log(this.currentRoute); 
    }); 
    } 

당신은 울부 짖는 소리 enter image description here

쿼리에서 값을 얻기 같은 콘솔을 얻을 것이다이 당신이 queryParams에의 oauth_token의 값을 얻을 것이다 사용

import { Router, Route, ActivatedRoute } from '@angular/router'; 

queryParams:string; 

constructor(private router: Router, private actRoute: ActivatedRoute) 
{ 
    this.queryParams= 
    this.router.routerState.snapshot.root.queryParams["oauth_token"]; 
} 

을 PARMS. 나는 이것이 당신

NB를 위해 좋은 것 같아요 : 당신의 URL을 내가 (route.data) 값을 원하는 http://example.com?oauth_token=123

+0

처럼 될 것입니다! 당신의 방법은 Router.config()로 할 수 있고 반환 된 객체에서 "/ login"과 같은 쉬운 경로를 검색 할 수 있지만 "/ heroes/: id"또는 "/ posts/:"와 같은 선택적 매개 변수로 URL을 구문 분석하는 것은 어렵습니다. post_id/comments/: comment_id " –

+0

검색어 매개 변수 인 rite가 필요합니까? K 답변을 업데이트 할 것입니다 –

+0

아니요 !!! 예를 들어, "hasHeader"라는 라우트 구성에서 데이터를 전달하려고합니다. (true | false),로드 된 라우트에서이 데이터를 가져올 필요가있는 각 라우트 변경의 지시문에 !!! 검색어 매개 변수가 좋지 않습니다. –

관련 문제