2

我创建了一个应用程序,它有自己的一组 dojo 小部件。我创建了一个自定义 dojo 构建,将我的所有库打包到一个 dojo 文件中。

该文件混合了 AMD 和非 AMD 类。实际上只有一个 AMD 类。尽管运行时服务器使用的是 1.7.2,但我正在使用 dojo 1.7.4 进行构建。我有 parseOnLoad=false。这是我的 WebSphere Portal 运行时必须的。

该库有一组声明、定义、提供......类似于:

require({cache:{
'com/gnf/class1':function(){
// wrapped by build app
define("com/gnf/class1", ["dijit","dojo","dojox"], function(dijit,dojo,dojox){

dojo.provide("com.gnf.class1");

dojo.declare("com.gnf.class1", null, {
});
(function(){
    if( com.gnf.class1.instance == undefined ){
        com.gnf.class1.instance = new com.gnf.class1(); 
    }
})();

});

}, 
'com/gnf/class2':function(){
// wrapped by build app
define("com/gnf/class2", ["dijit","dojo","dojox","dojo/require!com/ibm/btt/util/I18nUtil,com/ibm/btt/util/StringUtil"], function(dijit,dojo,dojox){

dojo.provide("com.gnf.dijit.class2"); 

dojo.require("com.gnf.util.class3");
dojo.require("com.gnf.util.class4");

dojo.declare("com.gnf.dijit.class2", null,{
}

...

}});
define("com/gnf/app/app", [], 1);

然后我将这个生成的 js 文件包含在我的 JSP 页面中,使用

<script type="..." src="/js/app.js"> </script>

该文件已加载,我可以通过使用 Firebug 看到代码在每个声明中都停止执行。但是,没有执行内部代码。最后,我的类集不可用,并且我收到“找不到类”错误消息。

有任何想法吗?我应该如何加载我的库?有什么遗漏吗?

提前致谢。

4

0 回答 0