Javascript Angularjs google地图标记事件不工作
我用过谷歌地图。标记事件不工作 我在用这个 视图侧:Javascript Angularjs google地图标记事件不工作,javascript,angularjs,Javascript,Angularjs,我用过谷歌地图。标记事件不工作 我在用这个 视图侧: <ui-gmap-markers models="mapResult" fit="true" idkey="mapResult.id" coords="'form_geo'" click="'onclick'" events="mapResult.events" > <ui-gmap-windows show="show" closeClick=
<ui-gmap-markers models="mapResult" fit="true" idkey="mapResult.id" coords="'form_geo'" click="'onclick'" events="mapResult.events" >
<ui-gmap-windows show="show" closeClick="closeClick()">
<div ng-controller="MapsDemoCtrl" ng-non-bindable>
<span style="color:#000;font-weight:bold;">
Formname : <a href='#/formspostview/{{id}}' style="color:#000;">
{{form_name}}
</a><br>
Username : {{user_name}}<br>
Date : {{createdAt | date: "MM/dd/yyyy H:mm"}}<br>
</span>
</div>
</ui-gmap-windows>
</ui-gmap-markers>
你能帮我吗?如何使用标记事件?以下示例演示如何通过ui gmap markers指令将单击事件处理程序附加到标记:
$scope.map.markersEvents = {
click: function (marker, eventName, model, args) {
//...
}
};
在哪里
html、正文、地图和画布{
身高:100%;
宽度:100%;
边际:0px;
}
地图画布{
位置:相对位置;
}
.google地图容器{
位置:绝对位置;
排名:0;
底部:0;
右:0;
左:0;
}
{{城市}
您也可以这样做: 需要在控制器上注入$interval
var ctrl = this;
var count = 1;
var clock;
ctrl.map;
var lat = -23.56;
var long = -46.65;
// Start Hold To Mark Controller
var startCount = function(event){
count = 1;
if ( angular.isDefined(clock) ) return;
clock = $interval(function() {
if(count > 0){
count = count - 1;
} else{
addMarker(event.latLng);
stopCount();
}
}, 500);
};
var stopCount = function(){
if (angular.isDefined(clock)) {
$interval.cancel(clock);
clock = undefined;
}
};
$scope.$on('$destroy', function() {
stopCount();
});
// End Hold To Mark Controller
// Start GoogleMaps Map Controller
function initMap() {
if(lat == null || long == null){
var center = { lat: -23.56, lng: -46.65 };
} else{
var center = { lat: lat, lng: long };
}
ctrl.map = new google.maps.Map(document.getElementById('map'), {
disableDefaultUI: true,
zoom: 12,
center: center
});
google.maps.event.addListener(ctrl.map, 'mousedown', function(event) {
startCount(event);
});
google.maps.event.addListener(ctrl.map, 'mouseup', function(event) {
stopCount();
});
google.maps.event.addListener(ctrl.map, 'dragstart', function(event) {
stopCount();
});
};
function addMarker(location) {
var marker = new google.maps.Marker({
animation: google.maps.Animation.DROP,
draggable: true,
position: location,
map: ctrl.map
});
markers.push(marker);
};
initMap();
// End GoogleMaps Map Controller
如果你在1秒钟后取下手指或移动手指,它会在该位置上做一个标记。标记将不会被创建。coords='form\u geo'click='onclick'-为什么有双四分之一?
<ui-gmap-markers models="map.markers" coords="'coords'" icon="'icon'" options="'options'" events="map.markersEvents">
</ui-gmap-markers>
var ctrl = this;
var count = 1;
var clock;
ctrl.map;
var lat = -23.56;
var long = -46.65;
// Start Hold To Mark Controller
var startCount = function(event){
count = 1;
if ( angular.isDefined(clock) ) return;
clock = $interval(function() {
if(count > 0){
count = count - 1;
} else{
addMarker(event.latLng);
stopCount();
}
}, 500);
};
var stopCount = function(){
if (angular.isDefined(clock)) {
$interval.cancel(clock);
clock = undefined;
}
};
$scope.$on('$destroy', function() {
stopCount();
});
// End Hold To Mark Controller
// Start GoogleMaps Map Controller
function initMap() {
if(lat == null || long == null){
var center = { lat: -23.56, lng: -46.65 };
} else{
var center = { lat: lat, lng: long };
}
ctrl.map = new google.maps.Map(document.getElementById('map'), {
disableDefaultUI: true,
zoom: 12,
center: center
});
google.maps.event.addListener(ctrl.map, 'mousedown', function(event) {
startCount(event);
});
google.maps.event.addListener(ctrl.map, 'mouseup', function(event) {
stopCount();
});
google.maps.event.addListener(ctrl.map, 'dragstart', function(event) {
stopCount();
});
};
function addMarker(location) {
var marker = new google.maps.Marker({
animation: google.maps.Animation.DROP,
draggable: true,
position: location,
map: ctrl.map
});
markers.push(marker);
};
initMap();
// End GoogleMaps Map Controller