我想在JQuery方法中执行一个外部函数。当我尝试调用该方法时出现问题,一个看起来未定义。我该怎么解决这个问题?我使用带有Angular 2的Typescript
ngAfterViewInit() {
jQuery(".mo-table").scroll(function () {
var trueDiveHeight = jQuery(".mo-table")[0].scrollHeight;
var divHeight = jQuery(".mo-table").height();
var scrollLeft = trueDiveHeight - divHeight;
if (jQuery(".mo-table").scrollTop() >= scrollLeft - 150) {
this.onSearch();
console.log("new bottom")
}
});
}
onSearch方法是一个外部函数,是Undefined。
onSearch(): void {
this.updateTableReport(this.scrollId, this.buildParams())
}
任何帮助将不胜感激。
答案 0 :(得分:2)
更改
jQuery(".mo-table").scroll(function () {
到
jQuery(".mo-table").scroll( ()=> {
您的this
未提及您的组件
或旧的js方式:
ngAfterViewInit() {
var self = this; //<-- assign this to self here
jQuery(".mo-table").scroll(function () {
var trueDiveHeight = jQuery(".mo-table")[0].scrollHeight;
var divHeight = jQuery(".mo-table").height();
var scrollLeft = trueDiveHeight - divHeight;
if (jQuery(".mo-table").scrollTop() >= scrollLeft - 150) {
self.onSearch(); //<-- use self here
console.log("new bottom")
}
});
}