SAPUI5中另一个应用程序的访问控制器
Access controller of another application in SAPUI5
我在一台 SAP 服务器上有一些 SAPUI5 应用程序。所有应用程序都将部署在 ERP 服务器版本 6.0 中。
所有应用程序在我们的 ERP 服务器中都具有访问权限 url,可以通过 SAP NetWeaver 检索该服务器。所有 url 的格式都是 commonPart/applicationName/index.html
。所有这些应用程序都可以通过 Fiori launchpad 应用程序访问。
现在我有一个必须在所有应用程序之间共享的控制器。有什么方法可以不用复制和过去就可以共享这个控制器吗?
提前致谢
您可以制作一个具有您希望两个控制器都具有的所有功能的 BaseController,并将此 js 文件放在 public/shared 文件夹中。然后,您可以从这两个应用程序扩展此控制器。
您可以为 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);
在它的 JS 文件中声明 BaseController
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然后扩展
希望对您有所帮助。
您只需输入以下内容即可
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);
我在一台 SAP 服务器上有一些 SAPUI5 应用程序。所有应用程序都将部署在 ERP 服务器版本 6.0 中。
所有应用程序在我们的 ERP 服务器中都具有访问权限 url,可以通过 SAP NetWeaver 检索该服务器。所有 url 的格式都是 commonPart/applicationName/index.html
。所有这些应用程序都可以通过 Fiori launchpad 应用程序访问。
现在我有一个必须在所有应用程序之间共享的控制器。有什么方法可以不用复制和过去就可以共享这个控制器吗?
提前致谢
您可以制作一个具有您希望两个控制器都具有的所有功能的 BaseController,并将此 js 文件放在 public/shared 文件夹中。然后,您可以从这两个应用程序扩展此控制器。
您可以为 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);
在它的 JS 文件中声明 BaseController
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然后扩展
希望对您有所帮助。
您只需输入以下内容即可
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);