我已经在我的网站上加载了谷歌地图 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 ); });
}
);
}
}
});
但是这样做我不能从主控制器中删除监听器,因为我不能引用地图实例。任何线索我该怎么做?