我正在使用 Laravel + Spark + vue js。
Blade 文件
<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++;
});
}
}
};
这里我有拖放,在放置时,我调用“onEnd”函数并收到以下错误。
TypeError: this is undefined
这里 this.emergcies.forEach 正在工作,但在 this.$http.get 上出现错误
有什么建议,解决方案是什么?
最佳答案
不要使用函数语法,而是使用箭头函数,因为 this 的范围在函数内部发生变化:
onEnd: function(evt){
var counter = 1;
this.emergencies.forEach((user, index) => {
this.$http.get('/ajax-call-url/')
.then(response => {
});
counter++;
});
}
检查this进行解释。
关于vuejs2 - this.$http.get 在 vue js 方法中不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42064009/