2016-09-09 1 views
0

아래에 표시된 것처럼 경로 매개 변수에 대한 교과서를 상당히 등록하는 구성 요소가 있습니다.동일한 페이지의 두 구성 요소에서 경로 매개 변수에 액세스

export class tutorialComponent implements OnInit, OnDestroy { 
    private sub: Subscription; 
    public chapter: string; 

    constructor(private route: ActivatedRoute) {} 

    ngOnInit() { 
    this.sub = this.route.params.subscribe(params => { 
     this.chapter = params['id']; 
    }); 
    } 

    ngOnDestroy() { 
    this.sub.unsubscribe(); 
    } 
} 

그러나, 노선에 : 나는 브라우저에서 ng.probe($0).componentInstance을 실행하면 (튜토리얼 CMP를 선택하지) http://localhost:3000/tutorial/chapter/0, 그때 장을 볼 수 = 정의 - 왜?

또한 this.chapter = +params['id'];을 사용하는 경우 chapter = NaN?

업데이트 :

나는 두 가지 구성 요소, 부모 (자습서)와 자식 (장) 구성 요소가 있습니다. 모두 동일 있습니다

ngOnInit() { 
    this.sub = this.route.params.subscribe(params => { 
     this.chapter = params['id']; 
    }); 
    } 

그러나, 하위 구성 요소가 올바르게 chapter을 표시?

작동하는 응용 프로그램에서입니다
this.validationCode = route.snapshot.params['id']; 

...

답변

0

문서에 따라 제안 된 방법은 route.snapshot을 사용하는 것입니다

this.chapter = +params['id'];

+0

그러나 업데이트하고 싶습니다 ... –

+0

나는 이해하지 못합니까? –

+0

@JohnBaird - URL이 동적 인 것을 의미합니다. 옵저버가 필요합니다. – mrgoos

0

당신은이 같은 숫자로 params['id'];를 변환 할 필요가 :

+0

나는 문제를 해결하지 못한다고 생각합니다. 문자열, 나는'undefined'를 숫자 (즉, 당신의 솔루션)로 얻습니다.'NaN' –

+0

그래서 아무것도 경로 매개 변수'id'에 전달되지 않는다는 것을 의미합니다. plnkr에서 일부 코드를 공유 할 수 있다면 도움이 될 것입니다. – mrgoos

+0

그래서 자식이 작동하고 부모가 작동하지 않습니까? 기묘한. 나는 당신에게'this.route.parent.params ... '를 시도해 볼 것을 제안하고 싶었습니다. 그래서 당신은 모든 부모로부터 params를 얻을 수 있습니다. 어쩌면 그것을 위해서 시도해야 할 수도 있습니다. – mrgoos

관련 문제