Данные Vue Set на Mapbox Нажмите - PullRequest
0 голосов
/ 26 октября 2018

Я использую Mapbox, чтобы уронить маркер на карте.Я успешно получил координаты, но не могу связать их с моими данными ...

         map.on('click', function(e) {
            if (this.marker) { this.marker.remove() }
            this.marker = new mapboxgl.Marker()
            .setLngLat({ lng: e.lngLat.lng, lat: e.lngLat.lat})
            .addTo(map);
            map.flyTo({
                center: { lng: e.lngLat.lng, lat: e.lngLat.lat },
                zoom: 15
            });

            // This does not bind and update the data
            this.latitude = JSON.stringify(e.lngLat.lat)
            this.longitude = JSON.stringify(e.lngLat.lng)


        })

1 Ответ

0 голосов
/ 26 октября 2018

Это проблема contextual binding.this здесь относится не к вашему экземпляру vue, а к map.

// fat arrow solves this
map.on('click', function(e) => {

})

// aliasing solves this
const self = this
map.on('click', function(e) {

})

// binding solves this
map.on('click', function(e) => {

}.bind(this))
...