2014-01-06 47 views
0

我學習道場遺漏的類型錯誤:數量不是一個功能:在創建Dojo類

我一直在使用如下聲明

require(
["dojo/_base/declare"],function(declare){ 
    return declare(null,{ 
     constructor : function(){ 
      alert("done"); 
     } 
    }); 
}); 

創建一個Dojo類,這是保存在/ learnDojo /根/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其是在Tomcat的web應用的文件夾中的index.html

當我從瀏覽器加載這個錯誤時,我得到錯誤「Uncaught TypeError:number is a function」

爲什麼?使用代碼或dojo語法創建類的任何問題

回答

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()不會返回該值,導致奇怪的錯誤。

+0

我感覺很蠢,謝謝。 – Mats

相關問題