2014-01-06 1 views
0

를 만드는 동안 나는 내가 다음과 같이catch되지 않은 형식 오류 : 수는 함수가 아닙니다 : 도장 클래스

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

를 선언 사용하여 도장 클래스를 만든 도장

을 배우고 이것은/learnDojo/루트에 저장하다 /test.js 내가 톰캣의 웹 응용 폴더에있는/learnDojo에서 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> 

아래와 같이 index.html을

내가 브라우저에서로드 할 때 "잡히지 않은 TypeError : 숫자가 함수가 아닙니다."라는 오류 메시지가 표시됩니다.

왜?

답변

1

Dojo 모듈을 정의 할 때 이 아니라 require()이 아니어야합니다. 그래서 /learnDojo/root/test.js 파일은 다음과 같습니다

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

그 이유는 define() 실제로이 케이스 return declare(...)에 (당신이 당신의 콜백에 반환 된 객체/값을 반환 할 것입니다 그러나 require()은 그 값을 반환하지 않으므로 이상한 오류가 발생합니다.

+0

정말 바보 같아요. 고마워요. – Mats

관련 문제