2017-11-03 2 views
0

두 개의 별도 컨트롤러가 있습니다. 한 컨트롤러에서 특정 링크를 클릭하면 다른 컨트롤러의 특정 앵커 태그로 리디렉션하고 싶습니다.각도 4 경로의 특정 앵커로 이동할 수 없습니다.

저는 queryParam을 라우터에 앵커 태그로 전달하여이 작업을 수행하려고합니다.

그러나 대상 구성 요소에서 검색하려고하면 매개 변수가 정의되지 않습니다.

this.router.navigate(['home',{ 
queryParams: {anchor: 'about'}}]) 

을 그리고 여기에 내가 대상 구성 요소의 매개 변수를 검색하려고 방법은 다음과 같습니다 :

여기 내 소스 구성 요소에서 뭘하는지의

this.anchor = this.route.queryParams['anchor'] 

를하지만 항상 정의입니다.

리디렉션은 어쨌든 작동하지만 물론 특정 앵커로 이동할 수 없습니다.

+1

당신은 할 수 없을 겁니다 예를 들어입니까? 제발 [mcve]를주세요. – jonrsharpe

답변

0

이것 좀 봐 주시기 바랍니다 : 당신은 관찰 할 queryParamMap를 사용한다 https://angular.io/guide/router#activated-route

. 이상적으로 ngOnInit 메소드에 가입하고 queryParam의 값을 검색해야합니다.

내가 언급 한 링크에서 언급했듯이 queryParams의 사용은 권장되지 않습니다. 또한 어떤 경우에도 올바르게 사용하지 않습니다. 배열이 아닌 구독해야하는 관측 가능 항목입니다.

여기

가 * 쿼리에 * 가입이 관찰 PARAMS
ngOnInit() { 
    this.route.queryParamMap.subscribe(queryParams => { 
     this.anchor = queryParams['anchor']; 
    }); 
    }