我在Angular 8应用中使用了Ngrx,我想在用户关闭路由器时调度一个动作。我有什么选择?我是否必须从路由器创建新的Guard并实现CanDeactivate方法,还是可以直接从组件中执行而无需任何其他服务?感谢您的提示或示例
答案 0 :(得分:1)
由于您使用的是NgRx,因此建议您在需要执行此操作的模块中收听路由器的效果。
在该特定路由器事件上,您可以调度操作。
路由器事件: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
) {}