我正在使用 angular-google-maps 指令。我正在使用 ui-boostrap 模式来显示地图。我在名为 mapSelectLocation.html 的文件中定义了我的模态内容。这是我打开模式的方式:
var modalInstance = $modal.open({
templateUrl: '/path/to/templates/mapSelectLocation.html',
controller: 'mapSelectLocationController'
});
地图选择位置.html:
<div class='modal-body'>
<ui-gmap-google-map ng-if="readyForMap" center='map.center' zoom='map.zoom'> </ui-gmap-google-map>
</div>
地图选择位置控制器:
function mapSelectLocationController($scope, $modalInstance) {
$scope.map = { center: { latitude: 39.8433, longitude: -105.1190 }, zoom: 10 };
$scope.readyForMap = true;
}
这将显示弹出窗口并适当地渲染地图。但是,当我关闭模式并重新打开它时,地图无法正确呈现。大部分地图区域呈灰色显示,左上角只有一小部分地图可见。
但是,如果我将 mapSelectLocation.html 的内容从文件本身移动到同一页面上的角度模板脚本中,它会很好地打开并重新打开,每次都正确呈现:
<script type="text/ng-template" id="mapSelectLocation.template">
<div class='modal-body'>
<ui-gmap-google-map ng-if="readyForMap" center='map.center' zoom='map.zoom'> </ui-gmap-google-map>
</div>
</script>
当然也要更新 templateUrl:
var modalInstance = $modal.open({
templateUrl: 'mapSelectLocation.template',
controller: 'mapSelectLocationController'
});
有人可以告诉我为什么将我的模态内容放在单独的文件中不起作用吗?我宁愿将它分开,也不愿使用角度脚本模板。