2013-11-01 4 views
1

은 그래서 구글지도 API를 사용하고 라이브러리는이 이벤트로 날을 제공, 'ZOOM_CHANGED'Google Maps API 이벤트가 포함 된 Backbone.js?

google.maps.event.addListener (지도, 기능() {

난 그냥 넣어 경우 작동 그것은 내 JS 파일에 있지만 어떻게 그것을 번역 Backbone.js와 함께? 프레임 워크와 함께 어떻게 구현합니까? 초기화 기능에서 .on 시도했지만 작동하지 않는 것 같아요.

답변

1

Google지도 api 이벤트는 DOM 이벤트가 아니므로 뷰에서 동일한 방식으로 연결하지 마십시오. 관련 뷰와 관련된 뷰의 초기화 함수 내에서 Google addListener 호출을 호출하고 추가 메서드를 호출합니다. 당신의 addListener 호출에 제공하는 콜백 함수 내부에서 (당신이 제대로 거기에 다른 뷰 메소드를 호출 할 수 있도록이 첫 번째에 대한 참조를 저장해야합니다.)

예 :

var MapView = Backbone.View.extend({ 

    initialize: function() { 

     var self = this; 

     // assuming that map variable is defined here, otherwise pass in a reference to it through view options 
     map = new google.maps.Map(blah blah blah); 
     google.maps.event.addListener(map, 'zoom_changed', function() { 
      self.handleZoomChanged(); 
     }); 
    }, 

    handleZoomChanged: function() { 
     // do whatever here 
    } 
};