Javascript AngularJS传单指令:事件不起作用
我正在使用AngularJS传单指令。我正在尝试使用事件来显示上下文菜单。我正在使用以下链接中的指南 但它不起作用 虽然我可以在控制台上看到日志,但我无法看到我想要看到的任何警报 这是我的控制器的代码。无论我尝试使用contextmenu或单击哪个事件,它对我都不起作用Javascript AngularJS传单指令:事件不起作用,javascript,angularjs,leaflet,angular-leaflet-directive,Javascript,Angularjs,Leaflet,Angular Leaflet Directive,我正在使用AngularJS传单指令。我正在尝试使用事件来显示上下文菜单。我正在使用以下链接中的指南 但它不起作用 虽然我可以在控制台上看到日志,但我无法看到我想要看到的任何警报 这是我的控制器的代码。无论我尝试使用contextmenu或单击哪个事件,它对我都不起作用 (function(){ var baseMapController = function($scope, $http, leafletData, Base64, leafletMapEvents) { angula
(function(){
var baseMapController = function($scope, $http, leafletData, Base64, leafletMapEvents) {
angular.extend($scope, {
berlin: {
lat: 40.726468,
lng: -74.005639,
zoom: 14
},
markers: {
m1: {
lat: 52.52,
lng: 13.40
}
},
layers: {
baselayers: {
googleTerrain: {
name: 'Google Terrain',
layerType: 'TERRAIN',
type: 'google'
},
googleHybrid: {
name: 'Google Hybrid',
layerType: 'HYBRID',
type: 'google'
},
googleRoadmap: {
name: 'Google Streets',
layerType: 'ROADMAP',
type: 'google'
}
}
},
events: {
map: {
enable: ['zoomstart', 'contextmenu', 'drag', 'click', 'mousemove', 'popupopen'],
logic: 'broadcast'
}
},
defaults: {
scrollWheelZoom: false
},
geojson:{}
});
$scope.$on('leafletDirectiveMap.click', function(event){
alert("Click");
});
// Mouse over function, called from the Leaflet Map Events
var countryMouseover = function (feature, leafletEvent) {
var layer = leafletEvent.target;
layer.setStyle({
weight: 2,
color: '#666',
fillColor: 'white'
});
layer.bringToFront();
};
$scope.$on("leafletDirectiveGeoJson.mouseover", function(ev, leafletPayload) {
countryMouseover(leafletPayload.leafletObject.feature, leafletPayload.leafletEvent);
});
};
baseMapController.$inject = ['$scope', '$http', 'leafletData', 'Base64', 'leafletMapEvents'];
}());
这就是我在浏览器控制台上看到的
不同之处在于,您的事件不是FlookeDirectiveMap.event,而是FlookeDirectiveMap.map.event,因此请尝试$scope.$on('FlookeDirectiveMap.map.click',函数(事件){alert(“click”);});靶心。非常感谢。@stackg91现在我可以捕捉到这些事件了。你知道如何显示关联菜单并设置其内容吗?你是说“弹出”吗?我是指关联菜单弹出。