收藏
回答

map组件的事件绑定问题

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 个回答

  • 追小命
    追小命
    2017-03-28

    可以有一个表示么?

    2017-03-28
    有用
    回复
登录 后发表内容