高德地图覆盖物绑定事件无法传参
在给高德地图生成的点覆盖物绑定事件时,本想通过 marker.on('click', this.getRoute(id))的形式来实现单击事件绑定加传参。但是忽略了on绑定事件时,第二个参数是函数名称,不能加括号。 正确形式是 marker.on('click', this.getRoute) 为了获取点击的对象,给对象循环时加上自定义属性,再在点击绑定的方法里通过获取自定义属性的方法来获取对象属性
// 根据停车场数据生成停车场覆盖点
createParkingMarker() {
this.parkings.forEach((item) => {
var marker = new AMap.Marker({
icon: 'https://webapi.amap.com/theme/v1.3/markers/n/mark_b.png',
position: item.position,
// label: item.label
content: item.content,
//绑定自定义属性
extData: item
})
marker.setLabel({
offset: new AMap.Pixel(-50, -8), //设置文本标注偏移量
content: `<div class='info'>${item.carsNumber}</div>`, //设置文本标注内容
direction: 'right' //设置文本标注方位
})
//给点绑定点击事件
marker.on('click', this.getRoute)
this.map.add([marker])
})
},
// 获取两点之间步行路径
getRoute(e) {
// getExtData获取点击对象的自定义属性
console.log(e.target.getExtData())
}