我正在使用Ionic + AngularJS + Cordova移动应用程序。我在我的应用程序中使用选项卡。在其中一个标签中,我向用户显示了一张地图。我正在使用谷歌地图V3 API。我将地图分配给一个div元素。当在离子/ angularJS应用程序中切换标签页时,Google地图显示为空白
var map = null
var mapOptions = {
center: {lat: sourceLatitude, lng: sourceLongitude},
zoom: 17,
};
map = new google.maps.Map(document.getElementById('map'), mapOptions);
我存储了用户的标记。迄今为止所有的工作都很好我能够存储标记信息并显示地图以及制表符。
现在,在另一个选项卡即tab-two中。我显示用户的存储标记。这样,当用户点击任何一个存储的标记时,它应该回到标签页,并且应该显示带有所选标记的地图。 (我正在使用angularJS ui-router处理不同的状态转换)
这是我面临问题的地步。当我从tab-2回到tab-one时,我得到一张空白的地图。我无法看到正在显示的地图。我知道转换正确发生,因为我已经为此登录并且其他UI元素发生了更改。这只是没有出现的地图。
我看周围SO和其他来源,我看到人们已经提出以下建议:
google.maps.event.trigger(map, 'resize');
我已经把上面的语句在我angularJS控制器,这样,当它从移动制表两制表一,它会尝试调整或刷新地图。我在控制台中得到下面的错误。
Error: a is undefined
[email protected]://maps.googleapis.com/maps/api/js?sensor=false&libraries=places:93:707
[email protected]://maps.googleapis.com/maps/api/js?sensor=false&libraries=places:94:32
我在某处读取变量映射应该是全局的。因此,我试图把地图上$ rootScope以及,而不是使用VAR
$rootScope.map = new google.maps.Map(document.getElementById('map'), mapOptions);
,但没有运气:(在这两种情况下。
之前已经看到过这个问题,任何人?任何帮助或指针将不胜感激。 。在此先感谢您的帮助
问候, V
我宁愿用标签'javascript'这个问题,但我不知道你应该删除哪一个。 – MrUpsidown
done..tagged as javascript – LearnToLive
也编辑了你的标签,因为我相信maps-api-3在这种情况下非常重要... – MrUpsidown