Я делаю мобильное приложение с помощью cordova с Angular JS и API Карт Google. На моем домашнем экране у меня есть 3 вкладки. Третья вкладка - это интеграция с Google Maps. В первый раз, когда я вхожу на третью вкладку, карта загружается нормально, и все работает отлично. Но, когда я перехожу к другому представлению, имеющему другой контроллер, и возвращаюсь к виду и контроллеру Карт Google, он не загружается.
Вот код, который я запускаю каждый раз, когда я перехожу на вкладку 3 (Где находятся Карты Google).
$rootScope.mapOptions = {
center: new google.maps.LatLng(-18.894608, -48.260980),
zoom: 14,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
$rootScope.map = new google.maps.Map(document.getElementById("map-canvas"), $rootScope.mapOptions);
Вот HTML-код представления
<div id="map-canvas" style="height: 90%; width: 100%"></div>
Я застрял в этой проблеме, и любая помощь будет очень ценить. Obs: Если вам нужна дополнительная информация о коде, просто спросите. Благодарю!
Проблема была решена с добавлением функции тайм-аута перед вызовом API Карт Google.
window.setTimeout(function() {
//google maps code
},100);
Оберните свой div-canvas в каком-нибудь состоянии ng-if, он будет работать определенно.
<div ng-if="showMap" id="map-canvas" style="height: 90%; width: 100%"></div>