angular-google-maps ディレクティブを使用しています。マップを表示するために ui-boostrap モーダルを使用しています。mapSelectLocation.html という名前のファイルでモーダル コンテンツを定義しています。モーダルを開く方法は次のとおりです。
var modalInstance = $modal.open({
templateUrl: '/path/to/templates/mapSelectLocation.html',
controller: 'mapSelectLocationController'
});
mapSelectLocation.html:
<div class='modal-body'>
<ui-gmap-google-map ng-if="readyForMap" center='map.center' zoom='map.zoom'> </ui-gmap-google-map>
</div>
mapSelectLocationController:
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'
});
モーダルコンテンツを別のファイルに入れることがうまくいかない理由を教えてください。angularスクリプトテンプレートを使用する必要があるよりも、別々に保持したいと思います。