2014-09-10 3 views
3

Я использую Google Maps for AngularJS и имею следующий Джейд код:Маркер не обновляет координаты в Google Maps для AngularJS

#map_canvas 
    google-map(center='map.center', zoom='map.zoom', draggable='true', options='options', events='map.events') 
    marker(coords='marker.coords', options='marker.options', idkey='marker.id') 

В моем угловом контроллере у меня есть:

$scope.map = {center: {latitude: 42.2405, longitude: -8.7207 }, zoom: 12, events: { 
     click: function (map, eventName, args) { 
      $scope.marker.coords.latitude = args[0].latLng.lat(); 
      $scope.marker.coords.longitude = args[0].latLng.lng(); 
      console.log($scope.marker); 
     } 
    } 
    } 

$scope.marker = { 
     id: 0, 
     coords: { 
      latitude: 42.2405, longitude: -8.7207 
     }, 
     options: { draggable: true } 
    } 

То, что я пытаюсь это обновлять местоположение маркера с каждым щелчком мыши. В console.log($scope.marker); Я вижу, что мой маркер печатает обновленное значение координат, но красный контакт не перемещается по карте.

Я не могу понять, что я делаю неправильно.

EDIT:

Маркер вертится на новое место после того, как я изменить размер карты, так что я понял, это вопрос о карте не освежающей, когда изменяется местоположение маркеров. Должно ли это сообщаться как ошибка? Что-нибудь я могу сделать, чтобы решить эту проблему?

ответ

3

И наконец! После прочтения немного на $ применяется() here и here и найти решение, как this one, где он упоминает в:

обернуть тело обратного вызова в $scope.$apply(function() { ... });. Помните , что ваше мероприятие происходит из мира «неуголов».

Я нашел this other post, где он просто добавляет $scope.$apply(); в конец функции щелчка.

Это последнее решение было единственным, кто работал на меня. Я опубликовал весь процесс, потому что мне интересно узнать о $ apply().

+1

Вы можете опубликовать рабочий код? – rOrlig