2016-10-21 2 views
7

에 구성 요소를 다시로드 경로 링크가 항상 구성 요소를 다시로드 호출하면 낮은 :포스 Angular2이 Angular2 RC1에서 탐색

<a [routerLink]="['/page', {id: 1}]">A link </a> 

이 Angular2, 없음 RC를 사용하여 구성 요소가 다시로드되지 않은 경우 자체의 탐색 다른 매개 변수와 함께. 재로드 동작을 되돌릴 수있는 방법이 있습니까?

나는이 다루는 다른 방법을 이해 ActivatedRoute에서 가입 및 변수의 변화를 감지하지만,이 복잡성이 증가 할 수있는 구성 요소 논리가 발생합니다.

+1

새 라우터에서는 지원되지 않지만, 궁극적으로이를 지원할 계획에 대해 논의했습니다. –

+1

어떻게이 작업을 수행 했습니까? – user2180794

+0

그 기능을 달성하는 방법에 대해 설명해 주시겠습니까? 내가 똑같은 문제에 직면하고있어, 나는 하나의 구성 요소가 현재의 경로에 따라 서로 다른 서버의 데이터가로드됩니다 여러 경로에 연결합니다. – Hazerd

답변

1

이 작업을 수행하는 간단한 방법은 * ngIf를 사용하여 다시로드 템플릿을 강제하는 것입니다. 당신은 "구성 요소를 끄고 켜는"변수가 필요합니다. 이 off/on 동작 전에 변수의 값이 변경되면 뷰가 다시 켜지면 렌더링됩니다.

2

'ActivatedRoute'에 대해 언급하고 코드를 복잡하게 만드는 방법에 대해 언급 했음에도 불구하고 내 질문에 도달 할 때이 문제에 직면 해있는 다른 사람들에게 도움이 될 것이라고 생각합니다. :).

This topic은 귀하의 질문에 대답합니다. '마법'이 일어나고있는 곳

(위의 주제에서 붙여 넣기) 다음이 코드이다. 이 subsribe 기능에 '재 장전'코드를 삽입 할 수 있습니다 경우 , 구성 요소가 다시로드됩니다.

ngOnInit() { 
    this.sub = this.route.params.subscribe(params => { 
     this.id = +params['id']; // (+) converts string 'id' to a number 
     // Some 'reload' coding 
     // In a real app: dispatch action to load the details here. 
    }); 
}