在UI5

时间:2015-06-22 10:36:48

标签: requirejs sapui5

我正在尝试将我的代码保存在模块中。当我定义我的第一个模块时,我扩展了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 ; 

有谁知道为什么会这样?谢谢!

2 个答案:

答案 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(){};