2013-11-01 3 views
1

Так я использую Google Maps API и библиотека предоставляет мне с этим событием:Backbone.js с помощью API-интерфейсов Google Maps?

google.maps.event.addListener (карта, 'zoom_changed', функция() {

Это работает, если я просто положить это в моем JS-файле, но как это получается в представлении с Backbone.js? Как я реализую это с помощью фреймворка? Я пытался с .on в функции инициализации, но он не работает

ответ

1

Google map События 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 
    } 
}; 
Смежные вопросы