SAPUI5创建库
我想在SAPUI5中创建一个新库并使用declareSAPUI5创建库,sapui5,Sapui5,我想在SAPUI5中创建一个新库并使用declare jQuery.sap.declare("app.util.Test", true); var Test = { myFn: function(){return 'foo'} } 但是当我想用它的时候,却找不到 sap.ui.define([ "sap/ui/core/mvc/Controller", "app/util/Test" ], function(Controller, Test) { "use stric
jQuery.sap.declare("app.util.Test", true);
var Test = {
myFn: function(){return 'foo'}
}
但是当我想用它的时候,却找不到
sap.ui.define([
"sap/ui/core/mvc/Controller",
"app/util/Test"
], function(Controller, Test) {
"use strict";
return Controller.extend("app.controller.MyTest", {
onInit: function() {
// Test undefined
var baa = Test.myFn();
}
});
如何修复此问题?这取决于您在哪里编写的代码。更具体地说,是在控制器的sap.ui.define调用之前执行,还是确实位于正确的路径中 假设根命名空间为app,则文件夹结构应如下所示:
rootFolder
|-controller
|---MyTest.controller.js
|-util
|---Test.js
此外,您没有对测试对象执行任何操作。定义只需创建一个全局对象并将其注册到UI5注册表中。它不会将测试对象与此全局对象关联。所以你应该:
jQuery.sap.declare("app.util.Test", true);
app.util.Test = {
myFn: function(){return 'foo'}
}
通常,您不应该使用,而应该简单地将其用于实用程序模块,以避免全局变量的使用。如果文件夹结构正确,则不必指定模块名,因为框架将从文件位置推断模块名
sap.ui.define([], function () {
return {
myFn: function(){return 'foo'}
};
});
我只是想指出,您并不是在定义一个库,而只是一个实用程序模块。您可以查看关于创建新UI5库的信息,该库通常用于对自定义控件、元素等进行分组