2

我决定使用 AngularUI Map 插件在我的一个视图中呈现 Google Maps 地图。

模板如下所示:

<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 回答