Я скрываю карту изначально с помощью ng-hide. Когда выражение ng-hide выражает значение true, карта отображается неправильно. Это только частично показано, и поведение также странно при перетаскивании. Когда я удаляю атрибут ng-show, карта отображается правильно.Как обновить угловую ui-карту (google-map)
HTML:
<div ng-controller="MapCtrl">
<button ng-click="showMap()">Show map</button>
<div ng-show="showMapVar">
<div ng-repeat="marker in myMarkers" ui-map-marker="myMarkers[$index]"
ui-event="{}">
</div>
<div id="map_canvas" ui-map="myMap" style="height:200px;width:300px"
ui-event="{}" ui-options="mapOptions">
</div>
</div>
</div>
Javascript:
angular.module('doc.ui-map', ['ui.map'])
.controller('MapCtrl', ['$scope', function ($scope) {
$scope.myMarkers = [];
$scope.mapOptions = {
center: new google.maps.LatLng(35.784, -78.670),
zoom: 15,
mapTypeId: google.maps.MapTypeId.ROADMAP
}
$scope.showMap = function(){
$scope.showMapVar = true;
}
}]) ;
я не использовал 'щ-map' сам, но я подозреваю, что проблема с' width'/'height' в Elemen t неправильно вычисляется при отображении карты. Попробуйте использовать 'ng-if' (на Angular 1.2) или' ng-switch' (в более старых версиях), чтобы полностью удалить и воссоздать DOM и посмотреть, разрешает ли она проблему. –
Спасибо, музыкально, но используя ng-if сделал это. – pussmun
Похоже, что ответ решил проблему. Пожалуйста, отметьте его как принятый, чтобы сделать его более понятным для других пользователей. :) –