В типичных 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);
}
Вид хакки по-моему. Есть ли способ обойти это в машинописном тексте? Заранее спасибо!
Как бы я сделать это как обратный вызов, хотя, так как машинопись компилятор жалуется, что '() =>' не имеют ожидаемые параметры обратного вызова. Обратный вызов jquery.form.js должен иметь эти 3 параметра для обратного вызова успеха. – Crystal
@Crystal просто поставил их в качестве параметров. См. Обновленный ответ – basarat
, который имеет смысл, за исключением того, что компилятор tsc жалуется на меня, если у меня нет точных параметров, которые принимает плагин. Я мог бы модифицировать плагин, но я надеялся, что вокруг будет еще один способ. – Crystal