2014-09-11 2 views
1

У меня есть одна проблема. Я надеялся, что кто-то мне поможет. Я использую Angular и угловую директиву Google Maps. У меня есть обработчик событий, зарегистрированный на холостом ходу, так что я хочу обновить, какие маркеры отображаются, но когда это событие обрабатывается, оно возвращает карту, и я потерял область, поэтому я не уверен, как добавить новые маркеры на карту?С Угловым обновлением области от обработчика события

Я настроить карту так:

<google-map center="map.center" zoom="map.zoom" events="map.events"> <markers> <marker ng-repeat="marker in map.markers" coords="marker"> </marker> </markers> </google-map> 

Это затем использует следующие настроить свои начальные значения на события:

$scope.map = { 
    center: { 
     latitude: 45, 
     longitude: -73 
    }, 
    zoom: 8, 
    events:{ 
     idle:getJobs 
    }, 
    markers:[] 
}; 

Когда событие запускает функцию getJobs я потерял сферу поэтому не может выталкивать новые маркеры на карту с угловыми, любые идеи?

function getJobs($scope) { 
    self = this; 
    JobService.getJobs(self.map).then(function(jobData){ 
     for (var i = 0; i < jobData.length; i++) { 
      var job = jobData[i]; 
      if (job.get('location') != null && job.get('location').longitude != null) { 
       $scope.map.markers.push(createJobMarker(job.get('role'),job.get('location').longitude,job.get('location').latitude),i);    
      } 
     } 
    }); 
} 
+0

Регистрация Где вы регистрируетесь? – PSL

+0

вид выглядит следующим образом:

ответ

1

Попробуйте

function getJobs($scope) { 
    self = this; 
    JobService.getJobs(self.map).then(function(jobData){ 
     $scope.apply(function() { 
      for (var i = 0; i < jobData.length; i++) { 
       var job = jobData[i]; 
       if (job.get('location') != null && job.get('location').longitude != null) { 
        $scope.map.markers.push(createJobMarker(job.get('role'),job.get('location').longitude,job.get('location').latitude),i);    
       } 
      } 
     }); 
    }); 
} 

Update:

Я вижу, вы просто потерять ссылку на переменную области видимости. Попробуйте настроить свое событие следующим образом:

$scope.map = { 
    center: { 
     latitude: 45, 
     longitude: -73 
    }, 
    zoom: 8, 
    events:{ 
     idle: function() { 
      getJobs($scope); 
     } 
    }, 
    markers:[] 
}; 
+0

Привет это все еще не в то же место, $ объем является недействительным, если вы звоните применить :( –

+0

Ну это лучшее, что я мог бы предложить, так как вы не показывает нам, где вы звоните 'getJobs 'или где вы регистрируете обработчик событий. – Chev

+0

Хорошо, что я включил разметку карты в главный вопрос, используя переменную событий, которую я определил в модели карты. Она срабатывает нормально, но затем она переходит на карту, но у меня нет доступа к области –

Смежные вопросы