Javascript Vuejs ajax调用未将更改映射到基础html表
我正在使用vuejs和axios进行简单的ajax调用:Javascript Vuejs ajax调用未将更改映射到基础html表,javascript,vue.js,axios,Javascript,Vue.js,Axios,我正在使用vuejs和axios进行简单的ajax调用: var app1 = new Vue({ el: '#app1', data: { test: [] }, methods: { setAJAX: function () { axios.get('/Departments/GetDepartments/').then(response => this.test = response.data.listBACAET); }
var app1 = new Vue({
el: '#app1',
data: {
test: []
},
methods: {
setAJAX: function () {
axios.get('/Departments/GetDepartments/').then(response => this.test = response.data.listBACAET);
}
}
});
为什么这样做有效:
setAJAX: function () {
axios.get('/Departments/GetDepartments/').then(response => this.test = response.data.listBACAET);
}
但这不起作用,更改未映射到表中。此测试未定义:
setAJAX: function () {
axios.get('/Departments/GetDepartments/').then(function(response){this.test = response.data.listBACAET});
}
这是因为箭头函数的工作方式: 当使用arrow函数时,它隐式地绑定到封闭范围的这一部分,在您的例子中,就是调用该方法的vue实例。 因此,您正在设置视图模型的数据,这是可行的 使用标准函数时,作用域中没有此项,因此会出现错误。要使用标准函数,需要为视图模型定义一个闭包,如下所示:
setAJAX: function () {
let vm = this
axios.get('...').then( function(response) {
vm.test = response.data.listBACAET
});
}
这是因为箭头函数的工作方式: 当使用arrow函数时,它隐式地绑定到封闭范围的这一部分,在您的例子中,就是调用该方法的vue实例。 因此,您正在设置视图模型的数据,这是可行的 使用标准函数时,作用域中没有此项,因此会出现错误。要使用标准函数,需要为视图模型定义一个闭包,如下所示:
setAJAX: function () {
let vm = this
axios.get('...').then( function(response) {
vm.test = response.data.listBACAET
});
}
setAJAX是如何调用的?setAJAX是如何调用的?只有一件事我不明白——axios是函数类型的axios=='function'。如何进行此调用:axios.get“…”?它看起来像是函数中的函数。只有一件事我不明白——axios是函数类型的axios=='function'。如何进行此调用:axios.get“…”?它似乎是函数内部的函数。