Диспетчерское действие при смене роутера Angular - PullRequest
1 голос
/ 01 апреля 2020

Я использую Ngrx в приложении Angular 8, и я хочу отправить действие, когда пользователь закрывает маршрутизатор. Какие варианты у меня есть? Нужно ли создавать новый Guard и реализовывать метод CanDeactivate с маршрутизатора, или я могу сделать это без каких-либо дополнительных услуг, прямо из моего компонента? Спасибо за любые советы или примеры

1 Ответ

1 голос
/ 01 апреля 2020

Поскольку вы используете NgRx, я предлагаю прослушивать эффекты маршрутизатора в модуле, который должен выполнить действие.

На этом указанном c событии маршрутизатора вы можете отправить свое действие.

События маршрутизатора: https://angular.io/api/router/Event

Пример эффекта:

routerEvents$ = createEffect(() => {
    return this.router.events.pipe(
        filter((event) => {
            return event instanceof <event> // replace with your router event
        }),
        mergeMap(() => {
            // do some stuff
        })
    );
});

constructor(
    private router: Router
) {}
...