我已经编写了自定义指令来制作google地图。
Vue.directive('gmap', {
inserted: function (el) {
return new google.maps.Map(el, {
center: { lat: -34.397, lng: 150.644 },
zoom: 8
})
}
})
<div v-gmap ref="map" style="height: 360px"></div>
它起作用了,我能看到地图。
然后,我想在地图上绘制一个标记,并需要一个google地图对象。
我能从v-gmap指令中获取返回值吗?
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元素..
发布于 2018-09-14 14:16:44
您应该为此创建一个组件,而不是一个指令:
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!',
});
},
});<gmap style="height: 360px"/>当然,这只是一个开始。如果您希望从组件外部控制标记,则可以通过prop传递标记;这取决于您希望它如何工作。
https://stackoverflow.com/questions/52325659
复制相似问题