AngularUI映射绑定事件

时间:2013-09-12 16:07:15

标签: javascript jquery angularjs angular-ui

我正在使用angularJS和AngularJS UI模块在我的应用上加载gmaps并对其事件执行操作。问题是ui-events调用函数没有传递写参数,实际上它并没有将任何东西传递给模块。

这是我的应用模块

angular.module('Maptesting', ['ui.map', 'ui.event'])
.controller('CtrlGMap', ['$scope', function($scope) {

    $scope.mapOptions = {
        center: new google.maps.LatLng(-54.798112, -68.303375),
        zoom: 11,
        mapTypeId: google.maps.MapTypeId.SATELLITE
    };

    $scope.myMarkers = [];


    $scope.addMarker = function ($event, $params) {
        $scope.myMarkers.push(new google.maps.Markers({
            map: $scope.myMap,
            position: $event.latLng
        }));
    };

    $scope.markerClicked = function(m) {
        window.alert("clicked");
    };
}]);

这是我使用ui-events进行调用的地图元素

<div ui-map="myMap"
  ui-options="mapOptions" 
  ui-event="{ 'map-click' : 'addMarker($event)'}"
  class="map-canvas">
</div>

每当我点击地图时,它都会在控制台上返回此错误:

Uncaught TypeError: Cannot read property 'latLng' of null

我知道错误是因为$ event为null但我不知道应该在哪里设置。

以下是完整的项目:https://github.com/facuferrari/Climbing-App

2 个答案:

答案 0 :(得分:0)

我有同样的问题。 如果你没有加载JQuery,你会得到这个错误。

答案 1 :(得分:0)

我有同样的问题。加载jQuery是不够的。你必须加载jQuery BEFORE angular。这应该可以解决问题。