Я использую Angular v6.1.0 и. Мой файл маршрутизации здесь:
const routes: Routes = [
{
path: '', component: DashboardComponent, children: [
{ path: '', redirectTo: 'activity', pathMatch: 'full' },
{ path: 'activity', component: ActivityComponent },
{ path: 'recent-activity', component: RecentActivityComponent },
{ path: 'notification', component: NotificationComponent }
]
},
];
А вот мой код для подписки на навигационные события:
router.events.subscribe((event: Event) => {
if (event instanceof NavigationStart) {
// Do something here
} else if (event instanceof NavigationEnd) {
// Do something here
}
});
Когда я использую router.navigation, запускается NavigationEnd.
Но если я перейду к маршрутизатору / dashboard и он будет перенаправлен на / dashboard / activity в указанном выше файле маршрутизации, событие не будет запущено.
UPDATE
Вот мой пример на StackBlitz
Просто введите домен без какого-либо пути, консоль только логи '/' при перенаправлении на логин (я предпочитаю войти '/ логин')