我正在进行一个成功的AJAX调用,并返回数据,但我一直得到的是 sortable.class.js:50 Uncaught ReferenceError: buildTabs is not defined
在成功处理中,我却想不出问题出在哪里。
有谁看出这有什么问题吗?
实例化并调用
const sortable = new Sortable();
sortable.v2Test();
课堂(缩短)
class Sortable {
constructor() {}
v2Test() {
this.v2Tabs();
}
buildTabs(dataset) {
console.log('working');
}
v2Tabs() {
$.ajax({
type: 'GET',
url: '/v2/tabs',
contentType: 'application/json',
success: function (data) {
buildTabs(data);
},
});
}
}
=====带传入函数的工作版本 =====
this.v2Icons(1, 'tab1', this.processIcons); //call
v2Icons(tab, targetElement, callback) {
$.ajax({
type: 'GET',
url: '/v2/icons/' + tab,
contentType: 'application/json',
success: function (data) {
callback(targetElement, data.icons, data.maxrow);
},
});
}
processIcons(targetElement, dataset, maxrow) {
// do the shizzle
});
success
函数没有对父对象方法的引用,为了解决这个问题,你可以使用 箭头功能 默认情况下,它与父体绑定。
class Sortable {
constructor() {}
v2Test() {
this.v2Tabs();
}
buildTabs(dataset) {
console.log('working');
}
v2Tabs() {
$.ajax({
type: 'GET',
url: '/v2/tabs',
contentType: 'application/json',
success: (data) => {
this.buildTabs(data);
},
});
}
}