这个。$ http.get在方法vue js中不起作用

时间:2017-02-06 09:12:11

标签: vuejs2 vue-component laravel-spark

我正在使用Laravel + spark + vue js。

刀片文件

<draggable class="col-md-12" :list="emergencies" :element="draggableOuterContainer" @end="onEnd">

Js文件

import draggable from 'vuedraggable'
module.exports = {
data() {        
    return {
        emergencies:[]
    };
},
components: {
    draggable,
},
created() {
    this.getEmergencies();
},
methods: {
    getEmergencies() {
        this.$http.get('/ajax-call-url')
            .then(response => {
                this.emergencies = response.data;
            });
    },        
    onEnd: function(evt){
        var counter = 1;
        this.emergencies.forEach(function(user, index) {
            this.$http.get('/ajax-call-url/')
            .then(response => {   
            });    
            counter++;  
        });
    }
}
};

这里我有拖放,On Drop,我调用“onEnd”函数并得到以下错误。

  

TypeError:这是未定义的

这里有一些.Emergencies.forEach正在运行,但却给出了错误。$ http.get

任何建议,解决方案可以是什么?

1 个答案:

答案 0 :(得分:3)

不使用函数语法,而是使用箭头函数,因为此函数的范围会在函数内发生变化:

onEnd: function(evt){
    var counter = 1;
    this.emergencies.forEach((user, index) => {
        this.$http.get('/ajax-call-url/')
        .then(response => {   
        });    
        counter++;  
    });
}

检查this以获取解释。