map组件的事件绑定问题
发布于 6 年前 作者 ping45 13534 次浏览 来自 问答

map组件中提供了bindtap和bindmarkertap两个机制,现在想实现点击map之后直接打开经纬度,运行的数据环境:

  1. 页面中存在多个map组件

  2. 经纬度来自服务器的页面描述数据。

现在发现,map中使用bindtap: <map bindtap=“foobar” …>

foobar: function (e) { console.log(e)}

发现e是{}空对象。没有e.detail.currentTarget等任何信息可以使用。

bindmarkertap情况类似,只能传递markerId属性,如果要获取经纬度必须对整个内容数据对象进行一次遍历。浪费性能和代码量。

最后尝试<view bindtap=“foobar” data-coordinate="…"> <map /></view>的方法嵌套。发现

在模拟机上可以如期望一样调用到foobar,但在真机环境(iOS&Android)上tap都被地图组件拦截,并不像文档所说的会向上传递,因此无效。

当然有quick and dirty的方法来实现想要的交互,但从功能完整和统一性上来说,这样并不科学,并且没有进行文档描述,浪费了很多时间。

一般来说,点击地图组件,有一个方便获取对应经纬度的机制,这是符合情理的。希望微信团队尽快能够改进map组件。

1 回复

可以有一个表示么?

回到顶部