Sapui5 WebIDE中用于重用帮助器类的全局实用程序项目
我尝试在SAPWebide中开发一个实用程序项目,以便与其他开发人员共享有用的实用程序类。让我们称之为基础项目。在我的CustomProject中,我想使用对该BaseProject的引用,并使用例如格式化程序 因此,我在WebIDE中创建了一个名为 com.company.base 和一个自定义项目 my.custom.app 在com.company.base项目中,我有以下文件夹结构:Sapui5 WebIDE中用于重用帮助器类的全局实用程序项目,sapui5,sap-fiori,sap-web-ide,Sapui5,Sap Fiori,Sap Web Ide,我尝试在SAPWebide中开发一个实用程序项目,以便与其他开发人员共享有用的实用程序类。让我们称之为基础项目。在我的CustomProject中,我想使用对该BaseProject的引用,并使用例如格式化程序 因此,我在WebIDE中创建了一个名为 com.company.base 和一个自定义项目 my.custom.app 在com.company.base项目中,我有以下文件夹结构: com.company.base +--- webapp/ +--- formatter/
com.company.base
+--- webapp/
+--- formatter/
Formatter.js
Component.js
library.js
manifest.json
neo-app-json
library.js如下所示:
sap.ui.define(["jquery.sap.global", "sap/ui/core/library"
], function(jQuery) {
"use strict";
sap.ui.getCore().initLibrary({
name: "com.company.base",
version: "1.0.0",
dependencies: ["sap.ui.core"],
types: [],
interfaces: [],
controls: [
"com.company.base.formatter.Formatter"
],
elements: []
});
return com.company.base;
}, /* bExport= */ false);
jQuery.sap.registerModulePath("com.company.base", "/comcompanybase/webapp");
jQuery.sap.require("com.company.base.Component");
sap.ui.define([
"my/custom/app/controller/BaseController",
"com/company/base/formatter/Formatter"
], function(BaseController, Formatter) {
"use strict";
return BaseController.extend("my.custom.app.controller.Master", {
formatter: Formatter,
onInit: function() {
//some coding
}
});
});
我将基本项目部署到hcp作为
公司基地
在我的自定义应用程序中,我向neo-app.json添加了以下路由
{
"path": "/comcompanybase",
"target": {
"type": "application",
"name": "comcompanybase"
},
"description": "Base Project"
},
在component.js的init方法中进行了如下注册:
sap.ui.define(["jquery.sap.global", "sap/ui/core/library"
], function(jQuery) {
"use strict";
sap.ui.getCore().initLibrary({
name: "com.company.base",
version: "1.0.0",
dependencies: ["sap.ui.core"],
types: [],
interfaces: [],
controls: [
"com.company.base.formatter.Formatter"
],
elements: []
});
return com.company.base;
}, /* bExport= */ false);
jQuery.sap.registerModulePath("com.company.base", "/comcompanybase/webapp");
jQuery.sap.require("com.company.base.Component");
sap.ui.define([
"my/custom/app/controller/BaseController",
"com/company/base/formatter/Formatter"
], function(BaseController, Formatter) {
"use strict";
return BaseController.extend("my.custom.app.controller.Master", {
formatter: Formatter,
onInit: function() {
//some coding
}
});
});
最后,我能够在自定义应用程序的控制器中使用格式化程序,如下所示:
sap.ui.define(["jquery.sap.global", "sap/ui/core/library"
], function(jQuery) {
"use strict";
sap.ui.getCore().initLibrary({
name: "com.company.base",
version: "1.0.0",
dependencies: ["sap.ui.core"],
types: [],
interfaces: [],
controls: [
"com.company.base.formatter.Formatter"
],
elements: []
});
return com.company.base;
}, /* bExport= */ false);
jQuery.sap.registerModulePath("com.company.base", "/comcompanybase/webapp");
jQuery.sap.require("com.company.base.Component");
sap.ui.define([
"my/custom/app/controller/BaseController",
"com/company/base/formatter/Formatter"
], function(BaseController, Formatter) {
"use strict";
return BaseController.extend("my.custom.app.controller.Master", {
formatter: Formatter,
onInit: function() {
//some coding
}
});
});
每次我第一次启动应用程序时,都没有找到引用。第二次一切正常
此外,每次更改后,我都必须将应用程序部署到hcp。有没有办法使用WebIDE的lokal工作区作为参考?我尝试使用.././向上导航,但这对我不起作用。WebIDE项目:
运行->运行配置->创建新配置(使用所需参数),此外,在“高级设置”中选中复选框“首先使用我的工作区”
这将防止您在每次更改后需要部署。WebIDE项目:
运行->运行配置->创建新配置(使用所需参数),此外,在“高级设置”中选中复选框“首先使用我的工作区”
这将防止您在每次更改后都需要部署。Thix修复了部署的问题。但在第一次加载stimm时出错。你知道这是从哪里来的吗?你在消费者应用程序的清单中添加了库的依赖项了吗?没有,我只在neo-app.json中添加了引用。感谢您的提示,我想在manifest.json中添加它作为库依赖项解决了这个问题。如果它对您有效,那么您可以接受这个答案;)我尝试了这个,但是发生了一个library.js找不到的错误。Thix修复了部署的问题。但在第一次加载stimm时出错。你知道这是从哪里来的吗?你在消费者应用程序的清单中添加了库的依赖项了吗?没有,我只在neo-app.json中添加了引用。感谢您的提示,我想在manifest.json中添加它作为库依赖项解决了这个问题。如果它对您有效,那么您可以接受这个答案;)我尝试了这个,但是发生了一个library.js找不到的错误