Javascript 从指令AngujarJs实例化映射

Javascript 从指令AngujarJs实例化映射,javascript,google-maps,angularjs,singleton,Javascript,Google Maps,Angularjs,Singleton,我已经指示在我的网站上加载google maps api: 我的问题是:如何实例化地图,然后在不同视图上添加一些单击侦听器,这是最好的方法 我正在使用ngView指令加载次视图: 'use strict'; var climbingApp = angular.module('climbingApp', ['ngRoute', 'maps'], function( $routeProvider ){ $routeProvider.when('/', {

我已经指示在我的网站上加载google maps api:

我的问题是:如何实例化地图,然后在不同视图上添加一些单击侦听器,这是最好的方法

我正在使用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 ); });
                }
            );
        }
    }
});
但是这样做,我无法从主控制器中删除侦听器,因为我无法引用map实例。你知道我该怎么做吗?

我是被称为ng地图的创建者。对于简单的功能,这不需要任何Javascript编码

对于您的情况,使用该指令,您只需将“on click”属性添加到
map
tag

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

`  
更多详情请访问