$.getScript("//dapi.kakao.com/v2/maps/sdk.js?autoload=false&appkey=키&libraries=services", function () {
// autoload=false 로하여 로드후 콜백
kakao.maps.load(function () {
... 중략
//객체 생성 에러
var ps = new kakao.maps.services.Places();
...
});
});
스크립트 로드 후 콜백을 통하여 호출하는데,
new kakao.maps.Map() 지도객체는 정상적으로 생성이 되는 반면에
place 라이브러리의 장소 객체는 정상적으로 생성되지 않습니다.
일단 의심되는것은 kakao.maps.load가 라이브러리를 제외한 v3스크립트만 로드되어도 바로 콜백을 실행하는것 같습니다.
라이브러리까지 모두 로드된 후에 콜백을 실행할 수 있는 다른 방법 (혹은 메서드?)가 있나요?
autoload=false 인 경우에 라이브러리 로딩 또한 동적으로 로딩되됩니다.
메인이 되는 지도 SDK의 스크립트와 url에 넣은 라이브러리 명에 대응되는 각각의 스크립트들이 엘리먼트에 순차적으로 append 되는 형태로 로딩되며,
이 모든 스크립트의 로딩이 끝나야만 kakao.maps.load 으로 등록한 콜백을 수행하고 마칩니다.