2016-07-11 33 views
5

Con il router angolare 2 Vorrei acquisire un evento quando è richiesta l'attivazione di un instradamento. In 1.x angolare ho usato $ locationChangeSuccess e poi ho controllato per vedere se l'utente era loggato o meno.Richiesta di intercettazione di instradamento con router angolare 2

Ho bisogno di fare qualcosa di simile con Angular 2, quindi posso reindirizzare un utente a una schermata di accesso se non sono ancora autenticati.

risposta

9

Dai un'occhiata a CanActivate e CanDeactivate. Il official angular docs fornisce un esempio di creazione di un amministratore che ho trovato abbastanza utile quando si crea una protezione generale di login.

CanActivate è utilizzato per verificare se il router può navigare verso il nuovo percorso, mentre CanDeactivate viene utilizzato per verificare se il router può allontanarsi dal percorso corrente. Se la guardia è presente su una rotta, controllerà con la guardia ogni volta che si verifica una navigazione.

Here è un collegamento diretto all'esempio.

+0

Sembra che CanActivate sia obsoleto. I documenti non fanno un buon lavoro di tenere il passo con le versioni, dalla mia esperienza degli ultimi mesi. https://www.reddit.com/r/Angular2/comments/4ipumf/canactivate_not_in_router_as_of_rc1/ – Beanwah

+2

Torna nel nuovo router. Era un decoratore e ora è una [interfaccia] (https://angular.io/docs/ts/latest/api/router/index/CanActivate-interface.html). –

+1

Sì, hai ragione – Beanwah

Problemi correlati