0

Я использую этот libary, чтобы создать карту Google в моих angularjs (v 1.2.15) WebApp: https://angular-ui.github.io/angular-google-maps/#!/api/google-mapустановить событие dragend в угловых-Google-картах

Моя цель заключается захватить событие, когда пользователь перетащите карту с помощью мыши. Я просмотрел документацию API Google Maps и нашел прослушиватель событий dragend: https://developers.google.com/maps/documentation/javascript/reference#Map

Я смог инициализировать свою карту, но по какой-то причине мой прослушиватель прослушивания событий не работает. Вот как я инициализировать свою карту с углового Google-картах libary:

angular.module('appMaps', ['uiGmapgoogle-maps']) 
    .controller('mainCtrl', function($scope, $log, $timeout) { 
    angular.extend($scope, { 
     map: { 
     center: { 
      latitude: 42.3349940452867, 
      longitude: -71.0353168884369 
     }, 
     zoom: 7, 
     events: { 
      dragend: function() { 
      alert('the map was dragged by the user') 
      } 
     }, 
     markers: [], 
     // .. 
     // .. 
    }); 
    }); 

Вот мой plunkr, где все работает, кроме dragend слушателя: http://plnkr.co/edit/AjnF4W5TB4cGSb59ete6?p=preview

ответ

1

В вашем примере dragend событие не получает поскольку он не привязан к объекту карты. Чтобы прикрепить события к объекту карты вам нужно использовать events атрибут ui-gmap-google-map директивы, как это:

<ui-gmap-google-map events="map.events" center="map.center" zoom="map.zoom" draggable="true" options="options"> 

где

.controller('mainCtrl', function ($scope, $log, $timeout) { 
     angular.extend($scope, { 
      map: { 

       events: { 
        dragend: function() { 
         alert('dragend') 
        } 
       }, 
       //the remaining code is omitted for clarity 
      } 
     }); 
    }); 

Modified plunker

+1

спасибо за объяснение он прекрасно работает. – matyas