6

私は GoogleMap API ('angular-google-maps' js パッケージ) を使用していますが、非常に奇妙な動作をしています。

初めてロードすると、次のように完全なマップがロードされます。 ここに画像の説明を入力

次に、ダイアログを閉じて再度開くと、次のように表示されます。 ここに画像の説明を入力

マップは別のダイアログの上にあるダイアログとして表示されることに注意してください。

何か案は?

4

4 に答える 4

5

Angular Google Map モジュールを使用している場合は、refresh 属性を googlemap 要素に追加する必要があります。

モジュールのドキュメントに書かれているように:

refresh = "expression" - true と評価された場合にマップの更新をトリガーする式。マップが最初に非表示になっている場合に便利です。

于 2014-10-29T16:18:06.000 に答える
3

マップを再描画する必要があります。次のコードを使用してこれを行うことができます。

google.maps.event.trigger(map, 'resize');

これにより、マップが更新され、問題が修正されます。

于 2014-10-29T14:26:38.467 に答える
2

追加するだけです:

$scope.render = true;

次のように、マップ コントロールに ng-if="render" を追加します。

<ui-gmap-google-map ng-if="$parent.render" center="map.center" zoom="map.zoom">
        <marker coords="map.center"></marker>
    </ui-gmap-google-map>
于 2014-10-29T18:56:48.100 に答える
1

問題はここで回答されています https://github.com/allenhwkim/angularjs-google-maps/issues/88

この問題を回避するには、次のように手動で中央に配置する必要があります。

あなたのjsコントローラーで

$scope.$on('mapInitialized', function (event, map)
{
    window.setTimeout(function() {
      window.google.maps.event.trigger(map, 'resize');
      map.setCenter(new google.maps.LatLng(38,-98));
    }, 100)
});

そしてあなたのHTMLで

<ng-map ng-if="subView=='map'" center="38,-98" zoom="5"></ng-map>
于 2016-04-24T04:25:22.673 に答える