javascript - 在 AngularJS 中的 View 之间保留 GoogleMaps map 对象

标签 javascript google-maps angularjs angularjs-directive angular-ui

我决定使用 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/

相关文章:

javascript - 如何根据另一个数组的内容对数组进行排序

javascript - jQuery 从 DropDownList 中删除项目

javascript - 焦点 : How to stop it prompting IE security box?

javascript - 将参数传递给回调函数

javascript - Angular 指令使用问题

javascript - 在 Angularjs 中为类生成动态值

javascript - Mootools 链接悬停和颜色变化

JavaScript 日期错误 2014 年 2 月

android - Android MapView 上的彩色街道?

导致 PIE.htc 错误的 Javascript/Google map