2016-12-22 4 views
4

1 개의 단일 구성 요소를 가리키는 2 개의 다른 경로를 가질 수 있습니까? 예를 들어 :하나의 경로 2 개 각도 구성 요소

{ path: 'signin', component: SignInComponent }, 
{ path: 'tenant/:id/signin', component: SignInComponent } 

좀 유선 행동을 가지고 있기 때문에 내가 부탁 해요 ..

+0

예, 가능합니다. 구성 요소 내부에서 기능 구현을 처리하는 방법을 사용자에게 알려줍니다. – ranakrunal9

+0

예, 사용할 수 있습니까? 당신이 직면 한 이슈를 말할 수 있습니까? –

+0

routerLinkActive가 활성화되지 않았습니다. 예제를 업데이트했습니다. – Vnuuk

답변

4

예 동일한 구성 요소를 가리키는이 다른 경로를 사용할 수 있습니다. 그러나 경로에서 이전 경로와 동일한 구성 요소를 사용하는 다른 경로로 이동하면 각도가 구성 요소 인스턴스를 다시 사용합니다. 구성 요소의 새 인스턴스를 만들지 않습니다.

'signin'에서 'tenant/: id/signin'으로 이동하는 경우 angle은 'signin'에 대해 만든 SignInComponent의 동일한 인스턴스를 사용합니다. SignInComponent의 constructor 및 init 메소드는 불려 가지 않습니다. init 메소드에서 observable을 사용할 수 있습니다. ActivatedRoute의 params 메소드는 관찰 가능합니다.

경로

ngOnInit() { 
    this.route.params 
    .switchMap((params: Params) => this.service.getHero(+params['id'])) 
    .subscribe((hero: Hero) => this.hero = hero); 
} 

switchMap 연산자는 관찰의 현재 값과의 작업을 수행하고, 새로운에 매핑하실 수 있습니다 ActivatedRoute 인스턴스입니다 : 당신은 매개 변수를 추출하기 위해이 같은 작업을 수행 할 수 있습니다 주목할 만한. 이 코드는 서비스의 경로에 지정된 ID를 가진 영웅을 얻습니다. 다음과 같이 할 수 있습니다. 코드를 게시하면 정확히 무엇을해야하는지 말할 수 있습니다.

+0

각도는 각기 다른 구성 요소를 어떻게 구별합니까? 'user'와'user/: gender'와 같은 두 개의 경로가있는 경우 탐색은 정상적으로 작동하지만'user/male'에서'user/female'까지 실패합니다. – Yang

+0

질문을받지 못했습니다. 설명해 주시겠습니까? – saurav1405

+0

나는 분명히 말하지 않아서 미안합니다. 두 경로는'{path : 'user', component : UserComponent}'와'{path : 'user/: gender', component : UserComponent} '같은 같은 구성 요소를 사용합니다. 네비게이션은 앵글 2에서'/ user'에서'/ user/male'까지 잘 작동하며 그 반대도 마찬가지입니다. 그러나'/ user/male'과'/ user/female' 간에는 실패했습니다. 그 구성 요소가 동일하더라도 앞의 시나리오에서는 새로운 구성 요소가 생성되지만 후자 구성 요소에서는 생성되지 않습니다. – Yang