如何获得角度ui中传单地图中点击次数的lat/lng信息

use*_*275 4 angularjs leaflet angular-ui

我正在使用Angular.js和Leaflet构建一个非常基本的Web应用程序.

我正在尝试从地图上的点击获取lat/lng信息,但我无法找到任何关于将Leaflet中的事件处理程序集成到Angular中的文档.

如果有人能指出我正确的方向,我会被激怒.

代码如下:

app.controller("eventcrtl", [ '$scope', function($scope) {
    $scope.$on('leafletDirectiveMap.click', function(event){
      console.log(event.latlng);
    });
}]);
Run Code Online (Sandbox Code Playgroud)

不起作用

j.w*_*wer 17

要处理事件,首先在范围上定义事件对象...

angular.extend($scope, {
    events: {
      map: {
        enable: ['click', 'drag', 'blur', 'touchstart'],
        logic: 'emit'
      }
    },
    ...
Run Code Online (Sandbox Code Playgroud)

并将其添加到您的传单元素.

<leaflet event-broadcast="events"></leaflet>
Run Code Online (Sandbox Code Playgroud)

然后,您可以在单击处理程序的args参数内访问纬度和经度:

$scope.$on('leafletDirectiveMap.click', function(event, args){
    console.log(args.leafletEvent.latlng);
});
Run Code Online (Sandbox Code Playgroud)

这是一个工作演示:http: //plnkr.co/PxRDhz6S5Svsg9FG4VRk

  • 至少在0.7.6中,事件似乎默认启用,因此不需要`event-broadcast`属性(尽管明确定义您想要的事件可能是个好主意). (2认同)