<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<script src="resources/sap-ui-core.js"
id="sap-ui-bootstrap"
data-sap-ui-libs="sap.m,sap.ui.table,sap.ui.commons"
data-sap-ui-theme="sap_bluecrystal">
</script>
<!-- only load the mobile lib "sap.m" and the "sap_mvi" theme -->
<script>
var bFlag;
sap.ui.localResources("views");
sap.ui.localResources("i18n");
sap.ui.localResources("utils");
jQuery.sap.registerModulePath('Application', 'Application');
jQuery.sap.require("Application");
var oApp = new Application({
root : "content"
});
</script>
<link href="css/stylesheet.css" rel="stylesheet" type="text/css">
</head>
<body class="sapUiBody" role="application">
<div id="content"></div>
</body>
</html>
我正在开发一个sapui5
应用程序,其中我有一个拆分应用程序,现在在工具栏的详细信息页上,我有一个名为“在新的window.So中打开”的按钮,我想在单击此按钮的新选项卡中打开这个特定的详细信息页(仅为详细信息页)。
有人能帮我解决这件事吗?
提前谢谢。
致以敬意,
沙里尼
发布于 2018-10-16 08:58:15
使用SAP的路由器 API。基本上,在manifest.json
文件中定义路由器、路由、模式和目标对象:
"sap.ui5": {
"rootView": {
"viewName": "path.to.view.name",
"type": "XML",
"async": true
},
"routing": {
"config": {
"routerClass": "sap.m.routing.Router",
"viewType": "XML",
"viewPath": "path.to.view",
"controlId": "init",
"controlAggregation": "pages",
"async": true
},
"routes": {
"init": {
"pattern": "",
"target": "init",
"viewId": "vid_init"
},
"target_name": {
"pattern": "url_parameter",
"target": "target_name",
"viewId": "vid_view_name"
}
},
"targets": {
"target_name": {
"viewName": "view_name",
"transition": "show"
}
}
}
}
在按钮的属性中分配一个按下事件处理程序:
<Button id="myButton" press=".onOpenNewWindow" />
在视图的控制器中,编写一个处理事件的代码。示例:
onOpenNewWindow: funtion(oEvent){
sap.ui.require([
"sap/m/library"
], sapMLib => sapMLib.URLHelper.redirect("#/url_parameter", /*new window*/true));
},
资源
发布于 2015-04-08 06:53:54
基本上,您可以在JavaScript中打开一个新选项卡,如下所示:
window.open("<yourURL>", _blank');
对于您的SAPUI5应用程序,您只需在一个专门的.html
文件中提供一个额外的.html
文件,该文件将加载您的视图/控制器。如果要将信息从Master/Detail应用程序传递到新选项卡,可以添加URL参数。
正如我在您编辑的问题中所看到的,您正在使用一个应用程序。我不知道进一步的结构(特别是Application.js的功能),但是在单独的.html
中,一个非常简单的解决方案可能如下所示:
<script>
sap.ui.localResources("views");
sap.ui.localResources("i18n");
sap.ui.localResources("utils");
sap.ui.jsview("name.of.your.detailView").placeAt("content");
</script>
如果您想重用您的Application.js文件,可以扩展它并传递一个简单的参数,该参数告诉您只显示一个视图。
还有一件事:我想您在应用程序中的某个地方使用了sap.m.SplitApp
。要只显示DetailView,应该在此时使用sap.m.App
。
https://stackoverflow.com/questions/29507085
复制相似问题