我正在使用IONIC2,我已经在地图上实现了地图和标记。 我可以获得地图点击监听器,但无法获得Marker点击监听器。
我也曾尝试使用addlistener,但无法获得标记的点击事件。
以下是我在地图上添加标记的代码:
<xsl:stylesheet version="1.0" xmlns:fo="http://www.w3.org/1999/XSL/Format" xmlns:xsl="http://www.w3.org/1999/XSL/Transform" xmlns:s="http://www.stylusstudio.com/xquery">
如果有人知道IONIC2中的标记点击监听器,请帮帮我。
答案 0 :(得分:2)
查看您的代码,我将假设您正在使用cordova-plugin-googlemaps
。
有些事情你做错了。第一个是map.addMarker()
没有返回标记,而是返回类型为GoogleMapsMarker
的值的承诺,这会导致此行不正确
let marker = this.map.addMarker(options)
其次,您将事件处理程序附加到标记对象而不是映射,这意味着此位也是错误的
this.map.on(this.map.markerClicked, function () { });
您需要做的是致电this.map.addMarker()
,等待承诺得到解决,然后将点击处理程序添加到承诺返回的标记中。
示例强>
this.map.addMarker(options).then((marker: GoogleMapsMarker) => {
marker.addEventListener(GoogleMapsEvent.MARKER_CLICK).subscribe(() => { console.log('Marker clicked...'); });
});
您需要确保已从GoogleMapsMarker
导入GoogleMapsEvent
和ionic-native
。
注意强>
在撰写本文时,我理论上已经向您展示了如何实现您想要的内容,但是在这一刻,这可能会给您以下错误
this._next不是函数
这是一个已知问题,据我所知,它可能会发生在您必须订阅的任何地图/标记事件上。可以在Ionic Native GitHub页面#206上跟踪该问题。