Vue js 1.0 在另一个方法中调用一个方法抛出“不是函数”
2017-07-31
359
我正在尝试在另一个 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() 不是一个函数。
1个回答
在 ajax 回调中,vue 实例
this
不可用,因为它属于不同的范围。因此,在
ajax
之前使用变量声明
$this = this
,并在 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");
}
});
},
Muthu Kumaran
2017-07-31