我决定使用 AngularUI Map 插件在我的一个 View 中呈现 Google Maps map 。
模板看起来像这样:
<div id="map">
<div ui-map="map" ui-options="mapOptions" id="map-canvas"
ui-event="{'map-click': 'placeMarker($event, $params)'}">
</div>
</div>
map 存储在 Controller 的 map 范围变量中。我通过在 Controller 主体中显式创建此变量来强制执行此行为:#scope.map = {};
我想要的是将这个 map 对象外部化到一个服务中,以避免每次访问 View 时都重新创建它。
我写的服务是这样的:
evee.factory('mapService', [function () {
return {
};
}]);
Controller 代码如下所示:
var LocationController = function($scope, mapService) {
$scope.map = mapService;
...
我无法让它工作,插件总是重新初始化 map 。 我是否应该放弃使用插件并采用这样的解决方案 non-plugin solution ?
谢谢。
最佳答案
angular-gm模块重用 map 实例,因此没有内存泄漏。
没有模块,这似乎是一个需要用 Angular 解决的重要问题。
关于javascript - 在 AngularJS 中的 View 之间保留 GoogleMaps map 对象,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18984072/