내 각도 2 응용 프로그램에는 사용자가 독립적이지만 상황에 따라 관련 구성 요소 그룹에서 선택할 수있는 탭 영역이 있습니다. 이것은 잘 작동했다각도 응용 프로그램에서 RouterLink를 통해 동적 URL 매개 변수 처리
<a class="page-content-header-item" routerLink="/page1" routerLinkActive="selected">Page 1</a>
: 그들은이처럼 routerLink에 정의되어 있는지에 따라 관련 구성 요소로드 이러한 링크 중 하나를 클릭합니다. 그러나 그 이후로 사용자가 선택한 다양한 필터 선택 사항을 URL의 매개 변수로 저장하는 앱을 만들었습니다. 이렇게하면 구성 요소를 다시로드 할 때 가장 최근의 선택 항목이 계속 표시되고 데이터에 적용됩니다.
이http://somesite.com/page1;language_filter=true;language_selection=English
이의 구성 요소 코드는 다음과 같습니다 :
이public changePage(page, value, type, body)
{
this.onUserSelection(value, type, body, page);
this.route.params.subscribe(
(params: any) => {
this.page = params['page'];
this.language_filter = params['language_filter'];
this.language_selection = params['language_selection'];
}
);
this.router.navigate(
['/page1', {
page: page,
language_filter: this.language_filter,
language_selection: this.language_selection,
}]);
}
이 기본 탐색 방법에 대해 잘 작동되어 사용자가 어떤 필터 선택을 만들었다 후에 그래서 URL은 다음과 같이 나타납니다 각각은 다음과 같습니다 라우팅 파일을 통해 수행 : 내가 언급이 탭 영역에 대해,
{ path: 'page1', component: Page1Component, canActivate: [AuthGuard], data: {contentId: 'page1'} }
그러나 하드 코딩 된 routerLink 파에 따라로드 구성 요소입니다 오전. 이제 사용자가 BACK을 구성 요소로 탐색 할 때 다른 방법을 사용할 수있는 것과는 달리 URL 매개 변수를 실제로 무시합니다. 문자 그대로 "page1"을로드하기 때문에 - <a class="page-content-header-item" routerLink="/page1" routerLinkActive="selected">Page 1</a>
... 이전에 추가 된 URL 매개 변수가 지워집니다. 그것은 몇 가지 동적 변수 수 있도록
<a class="page-content-header-item" routerLink="/page1" routerLinkActive="selected">Page 1</a>
... :
그래서, 내 질문은,이 코드를 편집 할 수있는 방법은 무엇입니까? 또는이 탭 영역에서 탐색을 처리하는 새로운 방법을 찾아야합니까?
'queryParams'를 사용해 보셨습니까? –
routerLink에서 무슨 뜻입니까? 어떻게 생겼는지 예를 들어 보셨습니까? – Muirik
예제를 설정할 시간을 좀주세요.하지만 기본 사항은'queryParams' 지시어로 평범한 객체로 경로에 몇 가지 매개 변수를 추가 할 수 있다는 것입니다 (경로 정의에 정의 할 필요 없음) ... 스마트 구성 요소에서 리졸버를 사용하여 경로 스냅 샷을 캡처하고 구성 요소 내에서 구독하고 'ngOnInit'에서 양식 및 하위 구성 요소를 업데이트하십시오. ''Link''' '과 경로가 출력 모양을합니다 : '로컬 호스트 : 그럼 당신은 같은 물건을 할 수있는 4200/foo는 동물 = 개 & = poodle' –