2

AngularUI Map プラグインを使用して、ビューの 1 つに Google マップ マップをレンダリングすることにしました。

テンプレートは次のようになります。

<div id="map">
<div ui-map="map" ui-options="mapOptions" id="map-canvas"
     ui-event="{'map-click': 'placeMarker($event, $params)'}">
</div>
</div>

マップは、コントローラーのマップ スコープ変数に格納されます。コントローラー本体でこの変数を明示的に作成することで、この動作を強制しました。#scope.map = {};

私が望むのは、ビューがアクセスされるたびに再作成されないように、このマップ オブジェクトをサービスに外部化することです。

私が書いたサービスは次のようになります。

evee.factory('mapService', [function () {
    return {

    };
}]);

コントローラーのコードは次のようになります。

var LocationController = function($scope, mapService) {

    $scope.map = mapService;

...

プラグインは常にマップを再初期化します。プラグインの使用をやめて、この 非プラグイン ソリューションのようなソリューションを採用する必要がありますか?

ありがとうございました。

4

1 に答える 1

0

angular-gmモジュールはマップ インスタンスを再利用するため、メモリ リークはありません。

モジュールがなければ、これは Angular で解決するのが重要な問題のようです。

于 2014-10-23T08:35:08.567 に答える