好的,案例是我在Ionic 3(与Angular 4一起使用)工作,我正在使用谷歌地图。到目前为止一切都很好,除非因为我无法为infoWindow
对象设置click事件监听器。
我想在用户点击infoWindow
时执行一些代码。已经尝试过以下内容:
google.maps.event.addListener(infowindow, 'click', function(){
console.log("click");
this.openPlace(place.id);
});
还尝试使用id放入div,我稍后将其与getDocumentById()
一起使用,然后向该div添加一个事件监听器。也没用。同样试图在该div中放置onclick
事件,并调用Angular函数。什么都行不通。
我该怎么做才能解决这个问题?
谢谢!
答案 0 :(得分:1)
https://developers.google.com/maps/documentation/javascript/reference#InfoWindow
InfoWindow对象不会广播点击事件。
此示例来自Google的文档:
function initMap() {
var originalMapCenter = new google.maps.LatLng(-25.363882, 131.044922);
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 4,
center: originalMapCenter
});
var infowindow = new google.maps.InfoWindow({
content: 'Change the zoom level',
position: originalMapCenter
});
infowindow.open(map);
map.addListener('zoom_changed', function() {
infowindow.setContent('Zoom: ' + map.getZoom());
});
}
请注意他们不是直接向InfoWindow添加侦听器,而是添加到地图。我找不到直接绑定到InfoWindow的单击侦听器的单个工作示例。