在典型的javascript中,我在进行ajax调用时一直在使用这种模式:
myFunction() {
var self = this;
$.ajax({
// other options like url and stuff
success: function () {
self.someParsingFunction
}
}
}
我正在使用jquery.form.js插件:http://malsup.com/jquery/form/#ajaxForm
发布表单时,我这样做了:
var successCallback: (data: any, textStatus: string, jqXhr: JQueryXHR) => void = this.handleResponse;
var options = {
url: "import/upload",
type: "POST",
dataType: "json",
success: successCallback
};
问题是,在我的handleResponse方法中,我无法使用this.someParsingFunction
调用我的“类”的其他函数。我最终做的是:
handleResponse(data, statusText, jqXhr) {
window.tempContext.parseInputData(data);
}
在我看来有点hacky。在打字稿中有什么方法吗?提前谢谢!
答案 0 :(得分:1)
你应该使用箭头功能:
myFunction() {
$.ajax({
// other options like url and stuff
success: (a,b,c)=>{ // Arrow function
this.someParsingFunction // Now this is lexically scoped. You don't need to create self
}
}
}