2016-10-31 3 views
1

내 탐색 창에 라우터를 사용하여 경로에서 쿼리를 전달하고 올바른 구성 요소로 이동하는 검색 기능이 있습니다.Angular2에서 같은 페이지로가는 경로를 찾는 방법은 무엇입니까?

onSubmit() { 
    this.router.navigate(['/search', { query: this.searchQuery }]); 
} 

다음 목표 검색 구성 요소 :

this.route.params.forEach((params: Params) => { 
    doSearch(params['query']); 
} 

내 쿼리를 변경할 때이 완벽하게 작동하지만, 그렇지 않은 그래서 기본적으로 내 메뉴 바 구성 요소의 검색 버튼

쿼리가 변경되지 않는 경우 Params Observable에 가입하면 params가 동일하게 유지 될 때 알림을받지 못한다는 것을 이해합니다. 그리고 라우터는 이미로드 된 구성 요소를 재사용하므로 호출되지 않았기 때문에 ngOnInit에서 코드를 사용할 수 없습니다.

검색 쿼리가 같기 때문에 결과가 잘못 될 수 있습니다. 그래서 doSearch를 다시 호출하는 방법이 필요합니다. 동일한 매개 변수를 사용하더라도.

라우터가 매개 변수를 변경하지 않고 동일한 대상으로 라우팅 할 때 감지 할 수있는 방법이 있습니까?

답변

2

당신이 this.router.events에 가입하면 쿼리가 동일하게 유지되는 경우에도 알림을 받게됩니다.

+0

감사합니다. 그 이벤트를 사용하여 작업하고 있습니다. 그러나 실제 솔루션보다 해결 방법과 비슷하다고 느낍니다. – MuhKuh

관련 문제