我在一个显示一些用户的搜索页面中,有一个带有一些过滤器的搜索栏,这些过滤器将用于通过HttpClient对服务器执行GET
请求。
我找不到的最佳做法是将这些参数存储在查询字符串上(以便为搜索添加书签),即使刷新页面,它们也将保留在“ URL”中。
我现在正在做的是:
this.router.navigate([], { queryParams: { search: searchParams }});
,其中searchParams是一个字符串,其中包含用于搜索的所有参数。ngOnInit
上,我正在使用route:ActivatedRoute
从类似route.snapshot.queryParams.search
的路线快照中读取参数,以进行检索(如果有searchParams的话),并在重新加载页面时使用它们执行新的调用。正在发生的事情是,当我在应用某些过滤器后重新加载页面时,该页面会重新加载以正确读取url中的参数,但是无法在queryString中再次设置它们,因此,如果我重新加载,该页面将不会应用任何过滤器。
在上面的解决方案中,我几乎接近“解决方案”,但我认为这不是最好的方法,必须有更明智的方法。