Der Angular (2+) -Router verfügt über eine events-Eigenschaft, die ein rxjs-Objekt ist.Angular Router Ereignisname
Einmal angemeldet, können Sie wie für Veranstaltungen hören:
router.events.subscribe((event: Event) => { console.log(event) });
aber das Problem ist, dass Sie keine Möglichkeit haben, den Ereignistyp zu erhalten, da es für alle Veranstaltungen hört. Eine hacky Lösung ist, dass Sie den Konstruktor Namen des Ereignisses wie überprüfen können:
router.events.subscribe((event: Event) => {
if(event.constructor.name === 'NavigationStart') {
loadingService.start();
} else if(event.constructor.name === 'NavigationEnd') {
loadingService.complete();
drawerService.destroyAll();
}
});
Ich war gespannt, ob es ein besserer Weg, dies zu erreichen war?
so vielen Dank! PR'd das auch zu den Dokumenten zurück! https://github.com/angular/angular/pull/15142 – amcdnl
Die beste Form des Beitragens :) –