How to detect a route change in Angular?

前端 未结 22 2030
花落未央
花落未央 2020-11-22 04:40

I am looking to detect a route change in my AppComponent.

Thereafter I will check the global user token to see if he is logged in. Then I can redirect t

22条回答
  •  陌清茗
    陌清茗 (楼主)
    2020-11-22 05:27

    For Angular 7 someone should write like:

    this.router.events.subscribe((event: Event) => {})


    A detailed example can be as follows:

    import { Component } from '@angular/core'; 
    import { Router, Event, NavigationStart, NavigationEnd, NavigationError } from '@angular/router';
    
    @Component({
        selector: 'app-root',
        template: ``
    })
    export class AppComponent {
    
        constructor(private router: Router) {
    
            this.router.events.subscribe((event: Event) => {
                if (event instanceof NavigationStart) {
                    // Show loading indicator
                }
    
                if (event instanceof NavigationEnd) {
                    // Hide loading indicator
                }
    
                if (event instanceof NavigationError) {
                    // Hide loading indicator
    
                    // Present error to user
                    console.log(event.error);
                }
            });
    
       }
    }
    

提交回复
热议问题