我正在使用GoogleMap API('angular-google-maps'js包),我有一个非常奇怪的行为。谷歌地图第二次不加载 - AngularJS
我第一次加载它,我得到加载的完整地图,喜欢这里:
然后我关闭对话框,然后重新打开它,我看到:
请记住,该地图显示为另一个对话框顶部的对话框。
任何想法?
我正在使用GoogleMap API('angular-google-maps'js包),我有一个非常奇怪的行为。谷歌地图第二次不加载 - AngularJS
我第一次加载它,我得到加载的完整地图,喜欢这里:
然后我关闭对话框,然后重新打开它,我看到:
请记住,该地图显示为另一个对话框顶部的对话框。
任何想法?
您必须重绘地图。您可以使用以下代码执行此操作:
google.maps.event.trigger(map, 'resize');
这将使地图刷新,修复您的问题。
如果您使用Angular Google Map模块,则必须将refresh属性添加到googlemap元素。
由于它写入的模块文件中:
刷新=“表达” - 表达,如果它的值为真,将触发地图刷新。当地图最初隐藏时很有用。
只需添加:
$ 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>
问题在这里回答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>
知道这一点,如何通过JavaScript检查,如果地图最初是隐藏的? – gerl 2015-04-21 16:59:14