2016-05-05 39 views
6

In uS-router angularJS è possibile utilizzare 2 componenti con lo stesso percorso utilizzando gli stati (come nell'esempio Angular UI Router: Different states with same URL?).Angular2 - due componenti con lo stesso percorso

È possibile ottenere lo stesso comportamento in angular2? Se è possibile collegare/fornire alcuni esempi o soluzioni alternative?

Il caso d'uso qui sarebbe qualcosa di simile a Facebook o Twitter dove l'URL rimane lo stesso ma il contenuto cambia a seconda se si è connessi o meno.

Finora l'unico modo in cui posso ragionare per raggiungere questo obiettivo è utilizzare * ngIf nel modello "padre" per selezionare il selettore di uno dei due componenti "figli". Qualcosa di simile a questo:

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

Esistono metodi consigliati per fare questo?

Grazie

risposta

0

Si possono avere percorsi con i parametri come

/article/:id/detail

Dove /article/123/detail e /article/abc/detail conducono allo stesso componente.

Si veda ad esempio questo tutorial https://angular.io/docs/ts/latest/tutorial/toh-pt5.html (Ricerca per "Configurazione di un percorso con un parametro")

+1

Grazie per la risposta, tuttavia questo non è quello che sto cercando. Quello di cui ho bisogno è 1 percorso che porta a 2 componenti in modo condizionale. Come in questo pseudo-codice: richiesta '/ home'; if (authenticated == true): vai al componente "authenticated_home" else vai a componenti "public_home" – dem00n

+0

Vedo. Sono abbastanza sicuro che il router stesso non fornisce alcun supporto per questo. Immagino che * * ngIf sia una buona soluzione. Che dire dell'utilizzo di percorsi diversi e del reindirizzamento automatico all'altra variante se viene inoltrata una route per un utente che ha effettuato l'accesso ma l'utente non ha effettuato l'accesso (o viceversa) come spiegato qui http://www.captaincodeman.com/2016/03/31/angular2-route-security/ –

+1

Ho pensato che, comunque questo cambierà l'URL nel browser che sto cercando di evitare. Per ora andrò con * ngIf e vedere se qualcun altro propone una soluzione alternativa. – dem00n

Problemi correlati