angular - 当queryParams改变时如何触发can-deactivate-guard?
问题描述
我在 app-routing 模块中使用以下路由:
path: "overview",
component: OverviewComponent,
children: [
{ path: 'edit', component: DetailComponent, canDeactivate: [CanDeactivateGuardService] }
]
我的问题是canDeactivate
只触发一次,从/overview
到/overview/edit
。我理解那部分,因为路由内部的孩子的路径。
我的问题是,canDeactivate
当 queryParams 在edit
路径内发生变化时触发触发的正确解决方案是什么?例如,将 url 从 更改/edit?id=1
为/edit?id=2
也应该触发canDeactivate
。
是否有可以从路由模块内部实现的简单解决方案?
如果没有,你有什么建议?
请记住,我仍在学习角度。
解决方案
您可以通过在路由器配置上设置RunGuardsAndResolvers属性来定义何时运行警卫和解析器。
path: "overview",
component: OverviewComponent,
children: [
{ path: 'edit', runGuardsAndResolvers: 'pathParamsOrQueryParamsChange', component: DetailComponent, canDeactivate: [CanDeactivateGuardService] }
]
推荐阅读
- json - react-intl:Unicode字符
- python - 当检测到超过 1 个具有相同类的输入时,使用 Selenium 上传文件
- javascript - 寻找一种有条件地将谷歌字体加载到反应应用程序中的方法
- java - 尝试使用蓝牙,但对处理程序缺乏了解
- database - MongoDB TTL 在 atlas 上不起作用,但在 localhost 上可以正常工作
- r - 是否可以同时进行 mean(x) 工作和 summary(x)
- android - Flutter 在IOS上的键盘上方显示吐司
- java - 如果Java中不存在奇数,如何在数组中找到最大奇数并返回0?
- html - css问题 - 未显示类
- ldap - Wildfly 20 - ldap SSL 上的管理管理领域(安全领域)