UI5从路由器URL删除或隐藏#或获取URI

2020-08-19 13:39发布

点击此处---> 群内免费提供SAP练习系统(在群公告中)加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)大家好, 我正在尝试使用 Ja...

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


大家好,

我正在尝试使用 Javascript URL API 来获取URL的搜索参数,但是由于路由器自动生成到URL中的"#",因此无法正确读取。 在URL中设置哈希之前,有什么方法可以删除它或对其进行编码?

例如,它会自动设置主(主)URL

http://localhost/#

模式为""的空

manifest.json(路由清单中的数据)

"路由":{
             " config":{
                 " routerClass":" sap.m.routing.Router",
                 " viewType":" XML",
                 " viewPath":" mainhub.ui.view",
                 " controlId":" mainCont",
                 " controlAggregation":"内容",
                 " transition":" slide",
                 "异步":是的,
                 " clearTarget":是,
                 "绕过":{
                     " target":" notFound"
                 }
             },
             "路线":[{
                 " pattern":"",
                 " name":" Homeview",
                 " target":" home"
                 },
                 {
                 " pattern":" publi/{?search}",
                 " name":" Publ",
                 " target":" publ"
                 }
             ],

             "目标":{
                 "家":{
                    " viewId":"家",
                    " viewName":"首页",
                    " viewLevel":1
                 },
                 "发布":{
                    " viewId":" publ",
                    " viewName":"公共",
                    " viewLevel":2
                 },
                 "未找到": {
                    " viewId":" notFound",
                    " viewName":" dialogs.NotFound",
                    " transition":"显示"
                 }
             }
         }

 

controller.js(进行导航的位置)

 ...
 
  onDetailViewPress:function(){

             var publId = 0;
             var参数=
                 {
                     " parameterName1":" parameterValue1",
                     "?search":{" publId":publId}
                 };

            this.getRouter()。navTo(" Publ",parameters);
         },

 

导航到此页面后,URL为:

http://localhost/#/publ/?publId = 0

非常感谢您提供的指导!

5条回答
CJones
2020-08-19 13:40

嗨。

对,是" pattern":" publ/{?search}"。 我打错了。

请求是从网址中删除"#"。

我正在尝试这样做:

 var currentURL = new URL(" http://localhost/#/publ/?publId = 0"),//返回URL对象

 urlParams = new URLSearchParams(currentURL.search),//返回""。 期望在"?"之后返回所有参数。 像" publid = 0"

 publId = urlParams.get(" publId"); //再次返回"",因为urlParams为空。 预期返回" 0"
 

如果我使用hashtagless(#)URL执行以上代码,则可以完成预期的工作。 但是我无法在UI5的路由文档中找到如何隐藏或替换它。

示例:

新URL(" http://localhost/#/publ/?publId = 0")返回:

 URL {
 href:" http://localhost/#/publ/?publId = 0",
 来源:" http://localhost",
 协议:" http:",
 用户名: "",
 密码:"",
 主机:" localhost",
 主机名:" localhost",
 港口: "",
 路径名:"/",
 搜索:""} 

新URL(" http://localhost/publ/?publId = 0")返回:

 URL {href:" http://localhost/publ/?publId = 0",
 来源:" http://localhost",
 协议:" http:",
 用户名: "",
 密码:"",
 主机:" localhost",
 主机名:" localhost",
 港口: "",
 路径名:"/img/publ/",搜索:"?publId = 0"} 

一周热门 更多>