angular - Angular 保存 searchParams 和页面刷新
问题描述
我在一个显示一些用户的搜索页面中,有一个带有一些过滤器的搜索栏,这些过滤器将用于使用GET
HttpClient 执行对服务器的请求。我无法找到将这些参数存储在查询字符串中的最佳实践(以便能够为搜索添加书签),即使页面被刷新,它们也会保留在 URL 中。我现在正在做的是:
- 执行搜索请求
this.router.navigate([], { queryParams: { search: searchParams }});
其中 searchParams 是一个字符串,其中包含用于搜索的所有参数。- 每次在 Store(redux) 中更新时存储这些 searchParams
- 在
ngOnInit
组件上,我使用 aroute:ActivatedRoute
从这样的路由快照中读取参数route.snapshot.queryParams.search
以检索,如果有 searchParams,并在重新加载页面时使用它们执行新调用。
发生的事情是,当我在应用了一些过滤器后重新加载页面时,页面重新加载正确地从 url 读取参数,但它无法在 queryString 中再次设置它们,所以如果我再次重新加载,页面将没有应用过滤器。
有了上面的这个解决方案,我非常接近一个“解决方案”,但我认为这不是最好的方法,必须有一个更聪明的方法来做到这一点。
解决方案
推荐阅读
- java - 如何从字符串中检索值?
- julia - 无法读取 csv 文件:“没有匹配 Parsers.Options 的方法”
- java - Nashorn 将compiledsript 放入引擎范围
- mule - 如何在 Tranform 中对变量使用 encodeURI
- python - Python Qt SpinBox 在失焦时更新
- arrays - 使用 Google Colab 时如何保存 np.array 的结果以供将来使用
- logging - Spring Kafka监听器方法-记录输入记录
- c - 为什么 printf() 只在 WSL2(Ubuntu) 上延迟执行的循环之后执行?
- javascript - 带有按钮的Jquery Onclick不显示窗口
- asp.net-core - AspNetCore 无法在 POST 操作中获取有效负载的值