我正在使用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但我不知道应该在哪里设置。
答案 0 :(得分:0)
我有同样的问题。 如果你没有加载JQuery,你会得到这个错误。
答案 1 :(得分:0)
我有同样的问题。加载jQuery是不够的。你必须加载jQuery BEFORE angular。这应该可以解决问题。