我正在使用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
任何建议,解决方案可以是什么?
答案 0 :(得分:3)
不使用函数语法,而是使用箭头函数,因为此函数的范围会在函数内发生变化:
onEnd: function(evt){
var counter = 1;
this.emergencies.forEach((user, index) => {
this.$http.get('/ajax-call-url/')
.then(response => {
});
counter++;
});
}
检查this以获取解释。