6

我正在使用GoogleMap API('angular-google-maps'js包),我有一个非常奇怪的行为。谷歌地图第二次不加载 - AngularJS

我第一次加载它,我得到加载的完整地图,喜欢这里: enter image description here

然后我关闭对话框,然后重新打开它,我看到: enter image description here

请记住,该地图显示为另一个对话框顶部的对话框。

任何想法?

回答

3

您必须重绘地图。您可以使用以下代码执行此操作:

google.maps.event.trigger(map, 'resize'); 

这将使地图刷新,修复您的问题。

5

如果您使用Angular Google Map模块,则必须将refresh属性添加到googlemap元素。

由于它写入的模块文件中:

刷新=“表达” - 表达,如果它的值为真,将触发地图刷新。当地图最初隐藏时很有用。

+0

知道这一点,如何通过JavaScript检查,如果地图最初是隐藏的? – gerl 2015-04-21 16:59:14

2

只需添加:

$ scope.render = TRUE;

,并添加NG-IF =“渲染”你的地图控制,就像这样:

<ui-gmap-google-map ng-if="$parent.render" center="map.center" zoom="map.zoom"> 
     <marker coords="map.center"></marker> 
    </ui-gmap-google-map> 
1

问题在这里回答https://github.com/allenhwkim/angularjs-google-maps/issues/88

您需要手动居中,以避免这个问题像下面,

在你的js控制

$scope.$on('mapInitialized', function (event, map) 
{ 
    window.setTimeout(function() { 
     window.google.maps.event.trigger(map, 'resize'); 
     map.setCenter(new google.maps.LatLng(38,-98)); 
    }, 100) 
}); 

并在您的HTML

<ng-map ng-if="subView=='map'" center="38,-98" zoom="5"></ng-map>