谷歌地图隐藏并显示地图
Google Map Hide and show Map
我使用angularjs,使用ng-if来显示和删除一个从谷歌地图中显示地图的指令,但每次删除该指令并重新放置时,地图都不会加载并变灰。有人知道我该怎么解决这个问题吗。
这是手风琴编码:
<uib-accordion close-others="oneAtATime">
<uib-accordion-group ng-repeat="mission in missions" is-open="status.open">
<uib-accordion-heading >
<div class="noOutline">
<i class="fa fa-map-o fa-2x pull-left"></i>
{{mission.description}}
{{status.open}}
</div>
</uib-accordion-heading>
<missions-Map id='map' missionId='20' ng-if="status.open"></missions-Map>
</uib-accordion-group>
</uib-accordion>
这是指令代码:
angular.module("dronesIntershipProject").directive('missionsMap', function () {
var opened = false;
return {
restrict: 'E',
template: "<div></div>",
replace: true,
link: function(scope, element, attrs) {
console.log(attrs.ngIf);
var myLatLng = new google.maps.LatLng(20,20);
var map = new google.maps.Map(document.getElementById('map'), {
center: {lat: -34.397, lng: 150.644},
scrollwheel: true,
zoom: 8
});
var marker = new google.maps.Marker({
position: myLatLng,
map: map,
title: "My Marker"
});
marker.setMap(map);
document.getElementById('map').removeAttribute("ng-if");
console.log(element);
}
}
您是否尝试过使用ng-show
而不是ng-if
?
ngIf文件规定:
ngIf指令删除或重新创建DOM树的一部分基于{表达式}。如果指定给ngIf的表达式计算为false值,则从DOM中删除该元素,否则为元素的克隆被重新插入到DOM中。
在创建映射时,您可以附加到map
元素,但一旦ngIf
删除了它,它就会消失。你必须重新创建地图,这样它才能再次出现。
ngShow的文档说明:
ngShow指令显示或隐藏给定的HTML元素基于提供给ngShow属性的表达式。元素如图所示或通过将.ng隐藏CSS类删除或添加到要素
通过使用ng-show
,您将能够实现您的目标,因为它只是通过向元素添加CSS类来隐藏元素,而不是像ng-if
那样从DOM中完全删除它。
相关文章:
- 张贴到地图显示的限制
- 谷歌地图显示灰色方框
- 无法让谷歌地图显示在我的网站上
- Google Maps Javascript API v3 地图显示在桌面浏览器上,但不会显示在移动浏览器上
- 双击谷歌地图显示提示框不起作用
- 谷歌地图显示钦奈(印度)使用javascript
- 使用 IMG 地图显示更大的图像
- 当缩放级别为 1 时,谷歌地图显示 kml(内部是图像 URL)不正确
- 无法让我的 openlayers 地图显示在网页上
- 谷歌地图显示没有jQuery
- 谷歌地图显示问题
- 谷歌/必应地图显示所有城市
- Esri 地图显示信息窗口,无需单击地图
- 必应地图显示地图的左上角的北美
- 谷歌地图显示KML数据
- 谷歌地图显示新请求后的旧方向
- 谷歌地图显示什么,直到我最小化屏幕
- 谷歌地图显示多个地图而不是一个
- 为什么谷歌地图显示灰色,而没有初始化缩放&当使用jQuery按钮更改缩放时,居中,地图上的居中效果非常好
- 谷歌地图显示标题的信息框