Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vue.js-在单文件组件脚本部分使用道具_Vue.js_Vue Component - Fatal编程技术网

Vue.js-在单文件组件脚本部分使用道具

Vue.js-在单文件组件脚本部分使用道具,vue.js,vue-component,Vue.js,Vue Component,我是vue的新手,很难让它正常工作。我为我的google maps div制作了一个文件组件: map.vue: <template> <div id="map" class="col-100">{{searchArea.radius}}</div> </template> <script> function updateSearchLocation(latlng) { this.searchArea.

我是vue的新手,很难让它正常工作。我为我的google maps div制作了一个文件组件:

map.vue:

<template>
    <div id="map" class="col-100">{{searchArea.radius}}</div>
</template>

<script>
    function updateSearchLocation(latlng) {
        this.searchArea.lat = latlng.lat();
        this.searchArea.long = latlng.lng();
    }

    function initMap() {
        map = new google.maps.Map(document.getElementById('map'), {
            zoom: 15,
            streetViewControl: false,
            mapTypeControl: false,
            zoomControl: false
        });
        google.maps.event.addListener(map, 'dragend', function() {
            updateSearchLocation(map.getCenter());
        });
        addMyLocationButton();
        getMyLocation();
    }

    window.initMap = initMap;

    module.exports = {
        props: {
            searchArea: Object
        }
    }
</script>
它已成功地传递到此组件(我可以在vue开发工具的此组件上看到它)。我想使用这个map.vue组件来更新这个对象,因为在另一个组件中,我正在基于这个对象进行API调用

正在显示映射,因此正在调用initMap。getMyLocation方法获取用户的当前位置,然后调用相同的updateSearchLocation函数

按如下方式加载我的地图:

<script async defer src="https://maps.googleapis.com/maps/api/js?key=xxx&callback=initMap"></script>

将函数放入“方法”对象中的导出对象中:

module.exports = {
        props: {
            searchArea: Object
        },
        data: function() {
            return {
                latlng: whatever
            }
        },       
        methods: {
            updateSearchLocation: function(this.latlng) {..... },
            initMap: function() {.. call updateSearchLocation() as this.updateSearchLocation(this.latlng) ... },
        }
    }

将函数放入“方法”对象中的导出对象:

module.exports = {
        props: {
            searchArea: Object
        },
        data: function() {
            return {
                latlng: whatever
            }
        },       
        methods: {
            updateSearchLocation: function(this.latlng) {..... },
            initMap: function() {.. call updateSearchLocation() as this.updateSearchLocation(this.latlng) ... },
        }
    }

如何使initMap可用于Windows?因此,在加载GoogleMaps脚本时可以调用它。我更新了我的第一篇文章,介绍了如何加载地图。我认为这会有帮助::var App=window.App=new Vue({…});这里甚至有一个完整的解决方案:我如何使initMap对windows可用?因此,在加载GoogleMaps脚本时可以调用它。我更新了我的第一篇文章,介绍了如何加载地图。我认为这会有帮助::var App=window.App=new Vue({…});或者甚至是一个完整的解决方案:请将答案标记为已接受。请将答案标记为已接受。