2013-09-30 42 views
0

我做了一个指令,加载了谷歌地图API在我的网站:http://plnkr.co/edit/3009kInkBmiF9ksB3eg9?p=catalogue实例化地图

我的问题是:怎么会是实例地图上再加入一些点击的最好方式听众在不同的意见?

我使用ngView指令加载次视点:

'use strict'; 

var climbingApp = angular.module('climbingApp', ['ngRoute', 'maps'], 
    function($routeProvider){ 

     $routeProvider.when('/', { 
      controller: 'Main' 
     }); 

     $routeProvider.when ('/newSector', { 
      templateUrl: 'app/templates/newSector.html', 
      controller: 'addSector' 
     }); 
    } 
); 

而且newSector控制器我用一个服务来添加监听器内:

climbingApp.factory('Markers', function($rootScope){ 
    return { 
     addListener: function(mapInstance, callback) { 
      google.maps.event.addListener(
       mapInstance, 
       'click', 
       function(e) { 
        var marker = new google.maps.Marker({ 
         position: e.latLng, 
         map: mapInstance 
        }); 
        $rootScope.$apply(function(){ callback(e); }); 
       } 
      ); 
     } 
    } 
}); 

但这样做的方式我无法从主控制器中删除侦听器,因为我无法引用映射实例。任何线索我应该怎么做?

回答

0

我是ng-map, google maps angularjs directive的创建者,称为ng-map。这不需要任何JavaScript编码的简单功能。

对于您的情况,使用该指令,您可以将'on-click'属性添加到map标记。

<map zoom="11" center="[40.74, -74.18]" on-click="myfunc()"> 
</map>` 

更多的细节可以在ng-map找到。