我正在尝试在我的另一个vue js方法中重用一个方法,如下所示: -
sendCode: function () {
this.showSection("SENDING");
$.ajax({
url: "someurl" + app.searchResponse.Id,
type: "POST",
contentType: "application/json",
success: function (result) {
if (result.Success) {
this.showSection("SMS SENT");
}
else {
this.showSection("SMS FAILED");
}
},
error: function (error) {
console.log(error);
this.showSection("SMS FAILED");
}
});
},
showSection: function (section) {
return app.ui.currentSection = section;
}
但我遇到了类型错误,说明this.showSection()不是函数。
答案 0 :(得分:1)
在ajax回调中,vue实例this
不可用,因为它是一个不同的范围。因此,在$this = this
之前使用变量声明ajax
,并在ajax回调中使用$this
。
sendCode: function () {
this.showSection("SENDING");
var $this = this;
$.ajax({
url: "someurl" + app.searchResponse.Id,
type: "POST",
contentType: "application/json",
success: function (result) {
if (result.Success) {
$this.showSection("SMS SENT");
}
else {
$this.showSection("SMS FAILED");
}
},
error: function (error) {
console.log(error);
$this.showSection("SMS FAILED");
}
});
},