【问题标题】:Google map marker update with AJAX使用 AJAX 更新 Google 地图标记
【发布时间】:2015-01-10 18:20:29
【问题描述】:

当数据来自静态工厂时,我有这个工作。现在数据来自远程服务器的 AJAX 调用 ($http),由于某种原因,标记没有放在地图上。

工作plunker

基本上,如果我取消注释 $http 并替换静态数据,它将不会显示。它将显示变量markers 填充了正确的数据,只是不会填充地图

有点类似issue

【问题讨论】:

  • 在加载第一批标记后尝试使用 ng-if 并将 mode.state 设置为 true,ng-show 在我的应用程序中与 ui-gmap 混淆并定位错误
  • mode.state 为真。地图清晰可见,标记不可见
  • 发现类似问题,试图从这个stackoverflow.com/questions/22372161/…搞清楚

标签: javascript ajax google-maps google-maps-api-3


【解决方案1】:

我的意思是在加载标记后将 mode.state 设置为 true:

$scope.mode.state = false;
$scope.change_type = function(val) {
    var markers = [];
    $scope.eventMarkers = markers  // clear the map of markers, before loading new

    Events.venues(val.type).then(function(resp){
        var venues = $.map(resp.data, function(value, index){return [value]})  
        for (var i = 0; i < venues.length; i++) {
            event = venues[i]
            markers.push(createMarker(i,event))
        }
        console.log(markers)
        $scope.eventMarkers = markers
        $scope.mode.state = true;
    }, function(errror){
        console.debug(error)
    });
}

【讨论】:

  • 我尝试了 ng-if,它给了我一些奇怪的错误:` 错误:无法在 'Node' 上执行 'appendChild':此节点类型不支持此方法。` 但是它没有改变任何东西,我用 ng-show 处理工厂的静态数据就很好了。
猜你喜欢
  • 2021-03-06
  • 1970-01-01
  • 2012-05-25
  • 2019-05-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多