2014-07-08 2 views
0

최근에 모듈 용 단일 JS 파일을 사용하여 RequireJS를 사용하는 것으로 옮겼습니다. 말할 필요도없이 OpenLayers2를 사용하고 있습니다.OpenLayers 2 및 RequireJS

나는 Openlayers2를 필요로하고, Require JS는 그 존재를 인정하지 않는다.

require.config({ 
    shim:{ 
    openlayers: { 
     exports: 'OpenLayers' 
    } 
    }, 
    paths: { 
    jquery: 'plugins/jquery/jquery.min', 
    openlayers: 'plugins/OpenLayers/OpenLayers' 
    } 
}); 
require(['openlayers'], function(test) { 
    console.log('OL: '+test); 
    console.log('Vector' + test.Layer.Vector); 
}); 

첫 번째 로그는 단순히 null 값을 반환

여기 내 코드의 샘플입니다.

두 번째 로그에는 Uncaught TypeError: Cannot read property 'Layer' of null 오류가 발생합니다.

제안 사항? JSFiddle에 나를 위해 잘 작동이 있기 때문에이 문제가 발생하는 것을 이상한

답변

0

그래서 저는 단순히 RequireJS의 아주 오래된 버전을 사용했습니다 ... 그래서 도움 빌에 대한 내 자신의 잘못 인 하하 고맙습니다!

0

:

require.config({ 
    shim:{ 
    openlayers: { 
     exports: 'OpenLayers' 
    } 
    }, 
    paths: { 
     jquery: 'http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min', 
     openlayers: 'http://www.openlayers.org/dev/OpenLayers' 
    } 
}); 

require(['openlayers'], function(test) { 
    console.log('OL: '+ test); 
    console.log('Vector' + test.Layer.Vector); 
}); 

여기를 참조하십시오 : http://jsfiddle.net/FdL2S/

는이 버전 문제가 될 수 있을까요? 콘솔에 오류가 있습니까?

+0

나는 너무 생각하지만, 직접 URL을 사용하여 내 버전을 적용한 후에도 여전히 'OL : null'을 출력합니다. 그것은 RequireJS에 의한 종속성의 비동기 로딩 때문일 수 있다고 생각합니다. 이 특정 'require'가 동기식으로 발생하도록 빠른 수정을 알고 있습니까? 아마도 그게 효과가 있을까요? – Werner