2016-05-05 20 views
6

W angularJS ui-router pozwala nam używać 2 komponentów z tą samą trasą przy użyciu stanów (jak w tym przykładzie Angular UI Router: Different states with same URL?).Angular2 - dwa komponenty o tej samej trasie

Czy można osiągnąć to samo zachowanie w kątowym2? Jeśli to możliwe, możesz połączyć/podać przykłady lub obejścia?

W tym przypadku użyto czegoś podobnego do Facebooka lub Twittera, gdzie adres URL pozostaje taki sam, ale zawartość zmienia się w zależności od tego, czy jesteś zalogowany, czy nie.

Do tej pory jedyny sposób, w jaki mogę to osiągnąć, to użycie * ngIf w szablonie "rodzica", aby wybrać selektor jednego z dwóch komponentów "dzieci". Coś takiego:

<home-logged-in *ngIf="authenticated()"></home-logged-in> 
<home-logged-out *ngIf="!authenticated()"></home-logged-out> 

Czy są jakieś zalecane sposoby, aby to zrobić?

Dzięki

Odpowiedz

0

Można mieć trasy o parametrach jak

/article/:id/detail

Gdzie /article/123/detail i /article/abc/detail prowadzą do tego samego komponentu.

Patrz na przykład ten poradnik https://angular.io/docs/ts/latest/tutorial/toh-pt5.html (Search for „Konfiguracja trasy z parametrem”)

+1

Dzięki za odpowiedź, jednak to nie jest to, czego szukam. Potrzebuję 1 trasy prowadzącej do 2 elementów warunkowo. Podobnie jak w tym pseudo-kodzie: żądanie "/ home"; if (authenticated == true): przejdź do komponentu "authenticated_home" else przejdź do komponentów "public_home" – dem00n

+0

Rozumiem. Jestem prawie pewien, że router sam w sobie nie zapewnia tego wsparcia. Myślę, że '* ngIf'jest dobrym rozwiązaniem. A co z wykorzystaniem różnych tras i automatycznym przekierowaniem do innego wariantu, jeśli dla zalogowanego użytkownika zostanie przekazana trasa, ale użytkownik nie jest zalogowany (lub odwrotnie), jak wyjaśniono tutaj http://www.captaincodeman.com/2016/03/31/angular2-route-security/ –

+1

Rozważałem, że to jednak zmieni adres URL w przeglądarce, którego próbuję uniknąć. Na razie pójdę z * ngIf i zobaczę, czy ktokolwiek zaproponuje alternatywne rozwiązanie. – dem00n

Powiązane problemy