Sottoscriversi agli eventi di navigazione del router in Angular 2

di Stefano Mostarda, in HTML5, Angular 2,

Nello script #199 abbiamo visto come il router sia necessario in angular per definire le rotte delle pagine che andiamo a navigare. Questo componente permette non solo la creazione di rotte, ma espone anche eventi relativi alla navigazione ai quali sottoscriversi. Gli eventi in questione sono:

  • NavigationStart: scatenato quando inizia la navigazione;
  • NavigationEnd: scatenato quando la navigazione termina;
  • NavigationCancel: scatenato quando la navigazione viene annullata;
  • NavigationError: scatenato quando c'è un erore di navigazione.

Per agganciarsi a questi eventi dobbiamo sottoscriverci alle notifiche scatenate dalla proprietà events del router. Il metodo che riceve le notifiche riceve in input un oggetto di tipo RouterEvent che è la classe base dei tipi di evento scatenati dal router. Possiamo usare l'oggetto come mostrato nel seguente esempio:

this._router.events.subscribe(this.interceptNavigation);

...

interceptNavigation(event: RouterEvent){
  if (event instanceof NavigationStart) {
    console.log('start');
  }

  if (event instanceof NavigationEnd) {
    console.log('end');
  }

  if (event instanceof NavigationCancel) {
    console.log('cancel');
  }

  if (event instanceof NavigationError) {
    console.log('error');
  }
}

Commenti

Visualizza/aggiungi commenti

| Condividi su: Twitter, Facebook, LinkedIn

Per inserire un commento, devi avere un account.

Fai il login e torna a questa pagina, oppure registrati alla nostra community.

Approfondimenti

I più letti di oggi