gpt4 book ai didi

javascript - 安装vuejs后在数据对象中设置地理位置

转载 作者:数据小太阳 更新时间:2023-10-29 06:05:08 24 4
gpt4 key购买 nike

我对 VueJS 场景还比较陌生。最近我正在尝试进行我的副项目,该项目需要在安装主要组件后立即获取用户的地理位置数据。

我的代码在这里,

var app = new Vue({
el: '#app',
data: {
position: null
},
mounted: function() {
if(navigator.geolocation){
navigator.geolocation.getCurrentPosition(function(position){
this.position = position.coords;
})
}

}
});

我想在安装后将数据对象中的 position 设置为当前地理位置,但不幸的是它不起作用。有什么我想念的吗?

最佳答案

这是上下文问题,this inside navigator 绑定(bind)到错误的上下文,所以当你写 this.position 时,this 没有设置为 Vue 对象。

为了防止你可以使用箭头函数:

  mounted: function() {
if(navigator.geolocation){
navigator.geolocation.getCurrentPosition(position => {
this.position = position.coords;
})
}
}

或者在导航器对象之前声明变量以保持正确的上下文

  mounted: function() {
if(navigator.geolocation) {
var self = this;
navigator.geolocation.getCurrentPosition(function(position){
self.position = position.coords;
})
}
}

顺便说一下,position.coords 会返回包含 latitudelongitude 等属性的对象,所以如果您想要其中之一,您需要指出:

self.position = position.coords.latitude;

关于javascript - 安装vuejs后在数据对象中设置地理位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43088949/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com