2014-11-26 4 views
1

dojo 코드를 2.x로 업그레이드 한 후 매우 이상한 오류가 발생합니다. 이 함수는 다음과 같이 정의됩니다 :유형 오류 : 정의되지 않은 함수 (esri map)

var map; //Globally defined 
Require(["esri/map", "esri/geometry/Point"], function(Map, Point) {  

map = new Map("map", {infoWindow: popupWin, extent: initialExtent, sliderStyle: 'small', sliderPosition: "bottom-right", navigationMode: 'css-transforms'}); 
var a = (map.toMap(new Point(0, 0)); 
}); 

그러나 콘솔에서 map.toMap() 함수를 실행하면 정상적으로 작동합니다. 아무도 내가 잘못 가고있는 생각이 있습니까? 너무 혼란스러워졌습니다 ...

답변

2

domReady!을 포함 시키려고 했습니까? DOM이로드 될 때까지 함수가 대기하게됩니다.

require([ 
    "esri/map", 
    "esri/geometry/Point", 
    "dojo/domReady!" 
], function(){ 
    // will not run until DOM is finished loading 
}); 

그렇지 않으면 당신이 등록되지 않은 포함 아직 당신이 dojo/ready에 코드를 래핑하여 해결할 수있는 수 있습니다.

require([ 
    "esri/map", 
    "esri/geometry/Point", 
    "dojo/ready" 
], function(map, Point, ready){ 
    ready(function(){ 
     // This function won't run until the DOM has loaded and other modules that register 
    }); 
}); 
+0

이렇게 전달할 수 있습니까? require ([ "esri/map", "esri/geometry/Point", "dojo/domReady!"], function (Map, Point) {} 아니면 별도로 "domReady!"를 포함시켜야합니까? –

+0

괜찮아요. 또한 플러그인이기 때문에 매개 변수로 함수에 전달할 필요가 없다는 점에 유의하십시오. 그 때문에 필요한 배열 끝에 플러그인을 추가하는 것이 좋습니다. – iH8

+0

동일한 오류가 발생했습니다. 감사합니다 답변을 주셔서 감사합니다 –

관련 문제