我在我的类构造函数中的typescript中向一个ID添加了一个更改事件,并且在该更改事件中我想访问一个类函数,但是'this'似乎不是在事件内部的类。如何从那里访问该功能?
export class Document_Uploads {
constructor() {
$("#FormBrokerReferenceID").change(function () {
= $("#FormBrokerReferenceID").val();
//inside this event it does not work
this.Validate()
});
// works here inside constructor
this.Validate()
}
Validate() {
var valid: bool = true;
some other code
}
}
答案 0 :(得分:5)
您的问题有两种解决方案。
第一种是让TypeScript为您处理范围:
constructor() {
$("#FormBrokerReferenceID").change( () => {
= $("#FormBrokerReferenceID").val();
// Should now work...
this.Validate()
});
// works here inside constructor
this.Validate()
}
第二种是自己处理它,虽然这是手动完成TypeScript会为你做的事情 - 值得知道它不是魔术。如果您不想在事件中覆盖this
的含义,但想要访问“外部”,这可能很有用。
constructor() {
var self = this;
$("#FormBrokerReferenceID").change(function () {
= $("#FormBrokerReferenceID").val();
// Should now work...
self.Validate()
});
// works here inside constructor
this.Validate()
}