2015-06-22 59 views
0

我试图让我的代码在模块中分开。当我定义我的第一个模块时,我扩展了sap.ui.base.Object并且它工作正常。我的问题是:定义我自己的模块时是否必须扩展sap.ui.base.Object?按照API documentation我尝试下面的例子:我需要这个模块我Component.js内侧,依赖这样在UI5中定义模块

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; 
}); 

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

愚蠢的错误 - 丢失的文档大括号。 var someclass = function(){};

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() 
    ); 
}, 
}