删除 URL 路由参数

Remove URL params on routing

我正在调用传递 url 参数的视图来执行特定的自定义操作。一旦处理了这些操作,我想使用路由器移动到另一个页面但首先删除 url 参数。

更具体地说:

Link 包含 url 参数导致主页,因为它的路由有一个空模式。

example.com/?urlParam1=Test&urlParam2=Boum

控制器处理完请求后,我将使用路由器通过调用

导航到另一个视图
getRouter().navTo("ViewX", {}, false)

浏览器中的url变为

example.com/?urlParam1=Test&urlParam2=Boum/#/ViewX

url 参数仍然可见。有机会移除它们吗?

干杯

据我从你的问题中了解到你有 2 条路线和类似的东西

routes : [ {
                pattern : "Val1",
                name : "Main",
                view : "Main",
                viewId : "Start"

            },{
                pattern : "Val2",
                name : "Next",
                view : "Next",
                viewId : "Start1"

            } ]

现在您调用路由 "Main" 并且您的 URL 将类似于
http://applicationurl:port/ProjectName#Val1
然后从这里调用路由 Next 然后系统会自动将 url 更改为
http://applicationurl:port/ProjectName#Val2
SAPUI5 路由开箱即用地支持这一点。您想实现什么不同?

编辑:更新答案
不,从目前的观点来看。
但我可以建议一个解决方法。在没有您关注的参数的情况下,再有一条通往同一视图的路线。现在您可以在执行导致加载相同视图的操作后调用路由。
有几点要记住

  1. 小心路由,它们不应冲突。
  2. 再次加载同一视图导致调用 routeMatched 事件,需要谨慎处理。

作为旁注,路由用于书签和可寻址功能。我建议您考虑通过 SAPUI5 中的 EventBus 处理操作。