map组件中提供了bindtap和bindmarkertap两个机制,现在想实现点击map之后直接打开经纬度,运行的数据环境:
页面中存在多个map组件
经纬度来自服务器的页面描述数据。
现在发现,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组件。