Angular 路由器更改时的调度操作
Dispatch action on Angular router change
我在 Angular 8 应用中使用 Ngrx,我想在用户关闭路由器时发送一个动作。我有什么选择?我是否必须创建新的 Guard 并从路由器实现 CanDeactivate 方法,或者我可以在没有任何附加服务的情况下直接从我的组件来实现?感谢您提供任何提示或示例
由于您使用的是 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
) {}
我在 Angular 8 应用中使用 Ngrx,我想在用户关闭路由器时发送一个动作。我有什么选择?我是否必须创建新的 Guard 并从路由器实现 CanDeactivate 方法,或者我可以在没有任何附加服务的情况下直接从我的组件来实现?感谢您提供任何提示或示例
由于您使用的是 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
) {}