javascript - Vue 方法无法在其他方法内部工作

标签 javascript vue.js methods

当我尝试从应用程序的其他方法内部调用方法时,出现 Vue 方法调用错误:

JS:

const app = new Vue({
el: '#info',
data() {
    return {
        position: {},
        areas: {}
    };
},
ready() {
},

mounted() {
},
methods: {
    prepareComponent(){

    },
    loadContent(){
        console.log(this.position);
        let queryString = '?lat='+this.position.coords.latitude+'&lon='+this.position.coords.longitude;
        axios.get('/api/getarea'+queryString)
            .then(response => {
                this.areas = response.data;
                this.showAreaData();
            });
    },
    showAreaData(){
        var cities = [];
        for(var area of this.areas){
            cities.push(area.city);
        }
        console.log(cities);
    },
    getLocation(){
        if (navigator.geolocation) {
            navigator.geolocation.getCurrentPosition(function(position) {
                this.position = position;
                this.loadContent();
            }, function(error) {
                console.log(error);
            });
        }
    },
},
});

这是 html:

            <div id="info">
                <a href="#" id="getPosition" class="btn btn-link" @click="getLocation">Get Position</a>
                <ul>

                </ul>
            </div>

运行代码后,出现 loadContent 未定义的错误(TypeError: this.loadContent 不是函数)。 我在这里缺少什么?

最佳答案

尝试添加var _this= this;使用_this.loadContent(); 或使用 app.loadContent();

getLocation(){
 var _this= this;
        if (navigator.geolocation) {
            navigator.geolocation.getCurrentPosition(function(position) {
                this.position = position;
                _this.loadContent();
            }, function(error) {
                console.log(error);
            });
        }
    },

关于javascript - Vue 方法无法在其他方法内部工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53260822/

相关文章:

javascript - 如何将 javascript 变量传递到 JSON 对象上的 Each 循环 (jQuery)

javascript - 路由灵活的 JavaScript 单页应用程序?

javascript - 选择元素更改后 Vue.js 不重新渲染

javascript - React Hooks 可以有方法吗?

c++ - 创建不依赖于对象的方法

javascript - 调用在函数内创建的对象中的方法

javascript - 将多个字段的值传递给jquery

javascript - 单元测试传递 Promise 的 Angular 指令表达式属性

javascript - 如何将 Terser 与 webpack 结合使用

html - Vue 错误 : "the template root requires exactly one element"