在Angular 2

时间:2017-07-07 15:45:53

标签: javascript angular google-maps ionic3

好的,案例是我在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函数。什么都行不通。

我该怎么做才能解决这个问题?

谢谢!

1 个答案:

答案 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的单击侦听器的单个工作示例。