angular JSでクリックするとGoogleマップを表示しようとしています。しかし、私の関数は、関数呼び出しに基づいて可視性を切り替えているようです (ng-show 経由)。これは、マップ div が実際に表示される前に「サイズ変更」イベントのトリガーが実行されるため、正しく機能しないことを意味します。
$scope.mapVisible = false;
$scope.toggleMap = function() {
$scope.myMap.panTo($scope.myMarkers[0].getPosition());
$scope.mapVisible = !$scope.mapVisible;
// this executes too soon. How to block until the div is really visible?
google.maps.event.trigger($scope.myMap, 'resize');
}
<div ng-show="mapVisible">
<!-- map here -->
</div>
では、div が実際に表示されるまで、マップで「サイズ変更」イベントのトリガーをブロックするにはどうすればよいでしょうか?