我正在学习道场
我使用declare创建了一个dojo类,如下所示
require(
["dojo/_base/declare"],function(declare){
return declare(null,{
constructor : function(){
alert("done");
}
});
});
这是保存在/learnDojo/root/test.js中 和index.html如下
<!DOCTYPE html>
<html>
<head>
<title></title>
</head>
<script type="text/javascript">
var dojoConfig = {
async: false,
parseOnLoad: false,
isDebug : true,
packages:[
{ name:"base",
location:"/learnDojo/root"
}]
};
</script>
<script src="//localhost:8080/dojo1.9.0/dojo/dojo.js" type="text/javascript"></script>
<script type="application/javascript">
require(["base/test","dojo/_base/declare","dojo/domReady!"],function(test,declare){
var test = new test();
});
</script>
<body>
</body>
</html>
我在/ learnDojo中有index.html,它位于tomcat的webapps文件夹中
当我从浏览器加载时,我收到错误“未捕获的TypeError:数字不是函数”
为什么呢?用于创建类的代码或dojo语法的任何问题
答案 0 :(得分:1)
定义Dojo模块时,您应该使用define()
,而不是require()
。所以你的 /learnDojo/root/test.js 文件看起来像这样:
define(
["dojo/_base/declare"],function(declare){
return declare(null,{
constructor : function(){
alert("done");
}
});
});
原因是define()
实际上会返回您在回调中返回的对象/值(在本例中为return declare(...)
语句。但是require()
不会返回该值,造成奇怪的错误。