Angular 角度路由器更改时的调度操作

Angular 角度路由器更改时的调度操作,angular,angular-routing,ngrx,ngrx-store,Angular,Angular Routing,Ngrx,Ngrx Store,我在Angular 8应用程序中使用Ngrx,我想在用户关闭路由器时发送一个动作。我有什么选择?我是否必须从路由器创建新的Guard并实现CanDeactivate方法,或者我可以直接从我的组件在没有任何附加服务的情况下实现它?感谢您提供的任何提示或示例因为您正在使用NgRx,我建议您在需要执行操作的模块中收听路由器效果 在特定的路由器事件上,您可以调度您的操作 路由器事件: 示例效果: routerEvents$ = createEffect(() => { return thi

我在Angular 8应用程序中使用Ngrx,我想在用户关闭路由器时发送一个动作。我有什么选择?我是否必须从路由器创建新的Guard并实现CanDeactivate方法,或者我可以直接从我的组件在没有任何附加服务的情况下实现它?感谢您提供的任何提示或示例

因为您正在使用NgRx,我建议您在需要执行操作的模块中收听路由器效果

在特定的路由器事件上,您可以调度您的操作

路由器事件:

示例效果:

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
) {}
routerEvents$=createEffect(()=>{
返回此.router.events.pipe(
过滤器((事件)=>{
返回事件实例//替换为路由器事件
}),
合并映射(()=>{
//做点什么
})
);
});
建造师(
专用路由器
) {}