在事件响应中使用对象/调用方法

时间:2018-04-12 12:23:49

标签: angular ionic-framework ionic2

假设我在离子应用程序中有类似

的类
export class DetailPage {
    ...

  constructor(
    ...
    public popoverCtrl: PopoverController
  ) {
    ...
  }

  mouseDown(ev) {

    let popover = this.popoverCtrl.create(PopoverPiece ..... )

  }

使用ionViewDidLoad方法,如下所示:

ionViewDidLoad() {
    ...
    object1.addEventListener("mousedown", this.mouseDown, false);
}

确定。我无法创建弹出框,因为当mouseDown被触发时,我不是(让我说,可能不那么准确)在一个实例中 of DetailPage和this.popoverCtrl未定义。

我该怎样做类似的事情?!我怎样才能创建一个popover来响应mousedown? 我无法在mouseDown()里面创建一个DetailPage实例,因为构造函数有很多参数我不说怎么创建。

我可以在mouseDown()函数中创建一个对象'popoverCtrl'吗?怎么样?

1 个答案:

答案 0 :(得分:0)

将函数this.mouseDown传递给事件侦听器时,范围会发生变化。使用箭头功能或bind

object1.addEventListener("mousedown", this.mouseDown.bind(this), false);