我正在尝试将我的代码保存在模块中。当我定义我的第一个模块时,我扩展了sap.ui.base.Object并且它工作正常。我的问题是:在定义我自己的模块时是否必须扩展sap.ui.base.Object?根据{{3}}我尝试了以下示例:
sap.ui.define([], function() {
// create a new class
var SomeClass = function();
// add methods to its prototype
SomeClass.prototype.foo = function() {
return "Foo";
}
// return the class as module value
return SomeClass;
});
我在Component.js中需要这个模块作为依赖,如下所示:
sap.ui.define([
"path/to/SomeClass"
], function (SomeClass) {
"use strict";
//var test = new SomeClass();
我总是收到语法错误:
failed to load '[...]/Component.js' from ./Component.js: Error: failed to load '[...]/module/SomeClass.js' from ./module/Service.js: SyntaxError: Unexpected token ;
有谁知道为什么会这样?谢谢!
答案 0 :(得分:0)
我们将代码分组到这样的模块中,例如:
jQuery.sap.declare("our.namespace.iscool.util.Navigation");
our.namespace.iscool.util.Navigation = {
to: function (pageId, context) {
// code here
}
// etc.
}
并在控制器中调用模块的功能
jQuery.sap.require("our.namespace.iscool.util.Navigation");
sap.ui.controller("our.namespace.iscool.Detail", {
// somewhere in this file comes this
handleNavButtonPress: function (evt) {
our.namespace.iscool.util.Navigation.navBackToMaster(
evt.getSource().getBindingContext()
);
},
}
答案 1 :(得分:0)
愚蠢的错误 - 在文档中缺少大括号。 var someclass = function(){};