原生的 DOM 事件如何触发 vue methods 里面的方法

在项目中用到了百度地图,百度地图增加了 marker,想在展开marker的时候里面用 onclick 方法触发一个事件,这个事件能激活 vue 的 methods 的方法。怎么能做到呢?就是原生的dom事件激活 vue 的 methos 已经注册的事件。

data_info: [[116.417854,39.921990,`
            <div class='M_message'>
                // 怎么和methods通信
                <div onclick="fun">查看详情</div>
            </div>
            `,'/assets/images/icon_pollute.png','1'],
                [116.406605,39.921585,"地址:北京市东城区东华门大街",'/assets/images/icon_pollute.png','2'],
                [116.412222,39.912345,"地址:北京市东城区正义路甲5号",'/assets/images/icon_pollute.png','3']
            ]

var marker = new BMap.Marker(new BMap.Point(that.data_info[i][0],that.data_info[i][1]),{icon:myIcon});// 创建标注

非常感谢

阅读 5.1k
2 个回答

如果你想这样的话,你可以暴露vue实例对象出来。
比如说,在create钩子里执行window.vm=this,这样就可以在onclick里用到vue实例定义的方法了,像window.vm.somMethod()
当然暴露到window不安全,这只是个举例,你可以放到闭包里。

还有一种方法是自定义一个事件,在vue里监听,然后外边触发

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题