javascript: establece la geolocalización en el objeto de datos después de vuejs montados

Soy relativamente nuevo en la escena VueJS. Recientemente, estoy tratando de trabajar en mi proyecto paralelo que requiere obtener los datos de geolocalización del usuario tan pronto como el componente principal se haya montado.

Mi codigo esta aqui

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

  }
});

Quería establecer la posición en el objeto de datos en la geolocalización actual después de montada, pero desafortunadamente no está funcionando. ¿Hay algo que me falta?

Mejor respuesta
Es un problema de contexto, este navegador interno está limitado a un contexto incorrecto, por lo que cuando escribes this.position, esto no se establece en el objeto Vue.

Para evitar que puedas usar las funciones de flecha:

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

o descartar la variable antes del objeto del navegador que contendría el contexto correcto

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

Por cierto, solo se lo haremos saber: los position.coords devolverían el objeto que contiene propiedades como latitud, longitud, etc., por lo que si desea uno de ellos, necesitará señalar que

self.position = position.coords.latitude;

Por favor indique la dirección original:javascript: establece la geolocalización en el objeto de datos después de vuejs montados - Código de registro