我在标记上具有单击功能,这将使标记弹出。但是,当用户在地图外单击时,我想禁用此焦点。该怎么做?
$scope.$on('leafletDirectiveMarker.click', function (event, args) {
$scope.markers['m' + args.model.value.id].focus = true;
createTemplateForPopup(args.model.value);
});
答案 0 :(得分:0)
您可以简单地监听窗口事件并禁用对点击的所有关注:
$window.addEventListener('click', function(e) {
$scope.markers.forEach(function(marker) {
marker.focus = false;
});
});
您可能会阻止默认设置在有人选择标记时不触发窗口单击:
$scope.$on('leafletDirectiveMarker.click', function (event, args) {
event.preventDefault();
$scope.markers['m' + args.model.value.id].focus = true;
createTemplateForPopup(args.model.value);
});
唯一的问题是,这将始终触发。因此,在销毁地图时删除EventListner是一个好习惯。