我在一台SAP服务器上有一些SAPUI5应用程序。所有应用程序都将部署在ERP服务器版本6.0中。
所有应用程序在我们的ERP服务器中都有一个访问URL,可以通过SAP NetWeaver检索。所有网址都具有格式commonPart/applicationName/index.html
。所有这些应用程序都可以通过Fiori启动板应用程序访问。
现在我有一个必须在我的所有应用程序之间共享的控制器。是否有任何方法可以共享此控制器而无需复制和过去?
提前致谢
答案 0 :(得分:0)
您可以创建一个BaseController,它具有您希望两个控制器都具有的所有功能,并将此js文件放在公共/共享文件夹中。然后,您可以从两个应用程序扩展此控制器。
答案 1 :(得分:0)
您可以为SAP Fiori应用程序创建可重用的库项目。将BaseController放入该库中。然后在应用程序项目中导入库,并从BaseController扩展应用程序控制器。
在基础项目的根文件夹中定义library.js
sap.ui.define(["jquery.sap.global",
"sap/ui/core/library"], // library dependency
function(jQuery) {
"use strict";
// delegate further initialization of this library to the Core
sap.ui.getCore().initLibrary({
name: "mylibrary.reuse",
version: "1.0",
dependencies: ["sap.ui.core"],
types: [],
interfaces: [],
controls: [],
elements: [],
noLibraryCSS: true
});
return mylibrary.reuse;
}, /* bExport= */ true);
在其中声明BaseController的JS文件
jQuery.sap.declare("mylibrary.reuse.BaseController");
/** Controller Definition **/
在neo-app.json
中定义并公开您的库的入口点 {
"routes": [{
"path": "/resources/mylibrary/reuse",
"target": {
"type": "application",
"name": "myreuselibrary",
"entryPath": "/mylibrary/reuse"
},
"description": "SAPUI5 Resources"
},
}
然后在应用程序项目中导入上面的库,执行JQuery.require()得到BaseController然后扩展它。
我希望这会有所帮助。
答案 2 :(得分:0)
您只需输入以下内容即可
sap.ui.controller([your namespace].[controller folder name].[controller name]).[your method name]([parameters you want to pass])
例如
sap.ui.controller(CafApp.controller.create).onCreate(url);