Javascript 获取标记,但lat&;lng为空-vue.js
我试图在地图上显示标记。我在vue开发工具中读取数据时没有遇到任何问题。同样Javascript 获取标记,但lat&;lng为空-vue.js,javascript,google-maps,vue.js,vuejs2,Javascript,Google Maps,Vue.js,Vuejs2,我试图在地图上显示标记。我在vue开发工具中读取数据时没有遇到任何问题。同样this.markers也有数据。但是在我的lat和lng中为空 我不确定我这样做是不是错了 data(){ return { markers: [] } }, computed: { articles(){ return this.$store.getters.getArticles; }
this.markers
也有数据。但是在我的lat
和lng
中为空
我不确定我这样做是不是错了
data(){
return {
markers: []
}
},
computed: {
articles(){
return this.$store.getters.getArticles;
}
},
watch: {
articles(){
this.buildMarkers();
this.clearMarkers();
}
},
methods: {
clearMarkers(){
for( var i = 0; i < this.markers.length; i++ ){
this.markers[i].setMap( null );
}
},
buildMarkers: function(){
this.markers = [];
for( var i = 0; i < this.articles.length; i++ ){
var position = new google.maps.LatLng(this.articles[i].lat, this.articles[i].lng);
console.log(position);
var marker = new google.maps.Marker({
position: position,
map: this.map
});
this.markers.push(marker);
}
},
},
mounted(){
this.map = new google.maps.Map(document.getElementById('article-map'), {
center: {lat: this.latitude, lng: this.longitude},
zoom: this.zoom
});
this.clearMarkers();
this.buildMarkers();
},
data(){
返回{
标记:[]
}
},
计算:{
第()条{
返回此。$store.getters.getArticles;
}
},
观察:{
第()条{
这个.buildMarkers();
这个;
}
},
方法:{
clearMarkers(){
对于(var i=0;i
为了便于理解,这是devtool的图像
顺便说一下,我可以看到地图。唯一的问题是我看不到上面的标记,因为lat&lng是空的 您有一个标记数组,因此必须执行
buildMarkers()
函数,这会将它们添加到地图中
控制台中打开的标记的map属性已设置为null(将其从映射中删除),这意味着clearMarkers()
也已执行
我注意到在您的文章()中,您首先构建了watcher,然后清除了标记。我想应该是这样的
articles(){
this.clearMarkers();
this.buildMarkers();
}
语法在我看来很糟糕。在你的文章《观察者》中,你不应该清除然后建立你的标记吗?