SAPUI5通过打开新选项卡导航到同一应用程序中的视图

SAPUI5通过打开新选项卡导航到同一应用程序中的视图,sapui5,Sapui5,我有一个SAPUI5应用程序,我需要通过在View1控制器中编写一个方法,从另一个视图(View1)传递一些查询字符串参数来打开一个视图(View2) 到目前为止,我已经像下面这样做了,当我通过webIDE运行应用程序时,它工作得很好。但当我将应用程序部署到云平台时,它给出了一个错误 控制器js函数 handleDetailNavPress: function(oEvent) { var viewModel = this.getModel(); v

我有一个SAPUI5应用程序,我需要通过在View1控制器中编写一个方法,从另一个视图(View1)传递一些查询字符串参数来打开一个视图(View2)

到目前为止,我已经像下面这样做了,当我通过webIDE运行应用程序时,它工作得很好。但当我将应用程序部署到云平台时,它给出了一个错误

控制器js函数

handleDetailNavPress: function(oEvent) {
            var viewModel = this.getModel();
            var headerInfo = viewModel.getProperty("/HeaderInfo");


            var navUrl = "#detailscreen/params?docNo=" +
                headerInfo.DocNo+ "&docName=" + headerInfo.DocName";

            var url = window.location.href.split('#')[0] + navUrl;
            //Navigate to second view
            sap.m.URLHelper.redirect(url, true);
        }
清单中的路由设置

"routing": {            "routes": [
                {
                    "pattern": "viewone",
                    "name": "viewone",
                    "target": "viewone"
                },
                {
                    "pattern": "viewtwo/params:?query:",
                    "name": "viewtwo",
                    "target": "viewtwo"
                }           ],
部署后出现的错误

viewSample:112未捕获类型错误:无法读取null的属性“6” 在getIntentParameter(qcmanager:112) 在Object.requestSite(qcmanager:352) 在Object.getSiteJson(qcmanager:500) 位于Object.loadAppSite(qcmanager:567) 电话:745 电话:746


问题是什么。是否有其他方法可以通过打开新选项卡在同一应用程序中导航。

如果您想在新选项卡中打开Vi 2,有两个选项:

  • 或者为该新视图包装一个saperate inde.html,并将该视图包含在该index.html中(它的工作原理基本上类似于用户的saperate SAP UI5应用程序) 但我不会推荐这个
  • 另一个解决方案是

  • 用户不使用“sap.m.URLHelper”,而是: window.open(“[PAth to your Application index file]/[url]”,“\u blank”); 例如:window.open(“…”,“\u blank”)
    *请记住,_blank很容易在新选项卡中打开视图。

    当您部署应用程序时,启动板链接会发生变化,第二个视图类似于当前URL+
    &/
    ,因此您需要检查URL并正确传递它。 只需相应地更改这两个变量:

    navUrl
    URL
    
    此外,我建议您使用跨应用程序导航,因为这样会更安全