在jQuery函数中调用一个函数

时间:2017-03-28 07:35:08

标签: javascript function angular

我想在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())
}

任何帮助将不胜感激。

1 个答案:

答案 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")
   }
 });
}