this.$http.get 在方法 vue js 中不起作用
this.$http.get is not working inside methods vue js
我正在使用 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.emergencies.forEach 可以正常工作,但它给出错误。$http.get
有什么建议,解决方案是什么?
不使用函数语法,而是使用箭头函数,因为 this 的作用域在函数内部发生了变化:
onEnd: function(evt){
var counter = 1;
this.emergencies.forEach((user, index) => {
this.$http.get('/ajax-call-url/')
.then(response => {
});
counter++;
});
}
检查 以获得解释。
我正在使用 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.emergencies.forEach 可以正常工作,但它给出错误。$http.get
有什么建议,解决方案是什么?
不使用函数语法,而是使用箭头函数,因为 this 的作用域在函数内部发生了变化:
onEnd: function(evt){
var counter = 1;
this.emergencies.forEach((user, index) => {
this.$http.get('/ajax-call-url/')
.then(response => {
});
counter++;
});
}
检查