我创建了一个具有自己的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);
然后我使用
在JSP页面中包含这个生成的js文件<script type="..." src="/js/app.js"> </script>
文件已加载,我可以通过使用Firebug看到代码在每个声明中停止执行。但是,没有执行任何内在代码。 最后,我的类集不可用,并且收到“class not found”错误消息。
有什么想法吗?我该如何加载我的库?有什么遗失的吗?
提前致谢。