首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我能从vue自定义指令中获取返回值吗?

我能从vue自定义指令中获取返回值吗?
EN

Stack Overflow用户
提问于 2018-09-14 13:49:03
回答 1查看 566关注 0票数 2

我已经编写了自定义指令来制作google地图。

代码语言:javascript
复制
Vue.directive('gmap', {
  inserted: function (el) {
    return new google.maps.Map(el, {
      center: { lat: -34.397, lng: 150.644 },
      zoom: 8
    })
  }
})

代码语言:javascript
复制
<div v-gmap ref="map" style="height: 360px"></div>

它起作用了,我能看到地图。

然后,我想在地图上绘制一个标记,并需要一个google地图对象。

我能从v-gmap指令中获取返回值吗?

代码语言:javascript
复制
mounted () {
    const map = this.$refs.map

    const marker = new google.maps.Marker({
      position: { lat: -34.397, lng: 150.644 },
      map: map,
      title: 'Hello World!'
    });
  }

它不起作用。

map只是HTML元素..

EN

回答 1

Stack Overflow用户

发布于 2018-09-14 14:16:44

您应该为此创建一个组件,而不是一个指令:

代码语言:javascript
复制
Vue.component('gmap', {
  template: '<div/>',

  mounted() {
    this.map = new google.maps.Map(this.$el, {
      center: { lat: -34.397, lng: 150.644 },
      zoom: 8,
    });

    const marker = new google.maps.Marker({
      map: this.map,
      position: { lat: -34.397, lng: 150.644 },
      title: 'Hello World!',
    });
  },
});
代码语言:javascript
复制
<gmap style="height: 360px"/>

当然,这只是一个开始。如果您希望从组件外部控制标记,则可以通过prop传递标记;这取决于您希望它如何工作。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52325659

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档