angular - Angular 7.2.15,由于后退导航,在导航(popstate)之后访问 RestoredState 数据
问题描述
我想在搜索表单、项目详细信息表单和返回第一个搜索表单(实现浏览返回功能)之间实现导航。我正在尝试保存搜索表单的状态(用户插入的搜索条件)以导航到项目详细信息,最后转到恢复用户最初插入的数据的上一页。我希望使用 Angular 本机路由器功能将数据发送到下一个表单,并在返回上一页后获得 restoreState(Angular 7.2.10 功能)。
我成功地能够使用 Angular 7.2.10 导航状态功能将数据发送到下一个表单,但我无法恢复恢复的状态,因为我不知道从哪里获取数据。我注意到在路由器对象中,我可以在“转换”中看到包含正确 navigationId 和我之前保存的自定义对象的 restoreState 属性,但我不知道如何访问它。
表单之间的导航使用 Angular Router 功能,例如:
this.router.navigate('...', { relativeTo: this.activatedRoute, state: {state: state} });
使用状态将数据发送到下一个表单。这是有效的。在导航之前,我正在使用以下代码保存当前状态(搜索表单状态):
window.history.pushState({navigationId: window.history.state.navigationId, custom: state}, "");
保存当前状态。在下一个表单中,我可以访问由 navigation 调用保存的状态,但是一旦使用 Location 服务返回执行,我不知道如何获取原始数据:
this.location.back();
一旦到达目标表单,我希望在路由器服务的某个地方获得 restoreState 。
解决方案
推荐阅读
- mongodb - 如何更新数组中匹配条件的特定对象
- angular - 来自 Realtime Firebase 的数据显示在控制台中,但不在 html 页面中
- html - 如何使用 flexbox css 设置顶部底部和右侧内容
- python - 日志记录没有创建任何输出?
- node.js - 为什么流在客户端不被视为字符串
- react-native - 为什么新创建的项目在 react-native 中立即关闭?
- javascript - 获取输入控件的未定义值
- android - BiometricPromptCompat:无法检查设备凭据。未找到父处理程序
- haskell - 在同一个应用程序中启动多个 scotty 服务器的最优雅方式?
- angular - 如何在 ionic 3 中更改日期格式