SAPUI5 通过打开新选项卡导航到同一应用程序中的视图
2018-05-23
5214
我有一个 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 Uncaught TypeError: Cannot read property '6' of null at getIntentParameter (qcmanager:112) at Object.requestSite (qcmanager:352) at Object.getSiteJson (qcmanager:500) at Object.loadAppSite (qcmanager:567) at qcmanager:745 at qcmanager:746
问题是什么。是否有另一种方法可以通过打开新选项卡在同一应用程序内导航。
2个回答
如果您想在新选项卡中打开 Vi 2,有两个选项:
- 为该新视图创建一个单独的 inde.html,并将该视图包含在该 index.html 中(它基本上会像用户的单独 SAP UI5 应用程序一样工作) 但我不会推荐这个
另一个解决方案是
- 而不是使用“sap.m.URLHelper”,用户: window.open('[PAth to you Application index file]/[url]', ' _blank '); 例如:window.open(' https://www.mysapui5app/#podetailscreen/params?docNo= ...', ' _blank ');
*请记住,_blank 是在新选项卡中打开视图的必需项。
Piyush aggarwal
2018-05-24
当您将应用程序部署到启动板时,链接会发生变化,第二个视图类似于当前 URL +
&/
,因此您需要检查 URL 并正确传递它。
只需相应地更改这两个变量:
navUrl
URL
此外,我建议进行跨应用程序导航,因为这样会更安全。
Mrinalini Vishnoi
2019-07-17