Я хочу прослушать NavigationStart событие и оценить, является ли его атрибут url
/logout
.Если это так, маршрутизатор должен прекратить запуск последовательных событий, таких как RoutesRecognized , GuardsCheckStart , ChildActivationStart и т. Д., Когда мой слушатель обнаруживает правильные NavigationStart событие.В противном случае маршрутизатор должен продолжать маршрутизацию.
Я не хочу использовать компонент, потому что я не буду отображать /logout
представление.
import { Component, OnInit } from '@angular/core';
import { Router, NavigationStart } from '@angular/router';
@Component({
selector: 'app-navbar',
templateUrl: './navbar.component.html',
styleUrls: ['./navbar.component.scss']
})
export class NavbarComponent implements OnInit {
constructor(
private router: Router,
) {
router.events.filter(event => event instanceof NavigationStart).subscribe(
(event: NavigationStart) => {
if (event.url == '/logout') {
this.logout();
// TODO stop firing successive events
}
}
);
}
ngOnInit() { }
logout() {
// TODO logout operations
}
}