无法读取未定义的属性“创建”

时间:2019-09-30 21:23:26

标签: angular typescript ionic-framework ionic3

在ionic3页面中,我想从click事件的功能中打开模式

export class HomePage {

  ....
  ....
  ....

  loadPos() {
    var randomLocations = Microsoft.Maps.TestDataGenerator.getLocations(5, this.map.getBounds());

    for (let i = 0; i < 5; i++) {
      var pin = new Microsoft.Maps.Pushpin(randomLocations[i]);
      this.map.entities.push(pin);
      //Add a click event handler to the pushpin.
      Microsoft.Maps.Events.addHandler(pin, 'click', this.pushpinClicked);
    }
    console.log("pins added")

    pushpinClicked(e) {
      HomePage.prototype.openModal()
    }

    openModal() {
      const myModal = this.modal.create(ModalPage)
      myModal.present()
    }
  }

当我从ionic-buttun运行openModal()函数时,它可以工作,但是当我从图钉单击事件运行该函数时,出现此错误:

  

无法读取未定义的属性“ create”

我该怎么做才能从点击事件中打开该模式? 什么

1 个答案:

答案 0 :(得分:0)

您需要做的就是改变

pushpinClicked(e) {
    HomePage.prototype.openModal()
}

pushpinClicked(e) {
    this.openModal()
}

原因是诸如this.modal之类的字段不在原型对象中。您可以在此处看到一个示例:https://stackblitz.com/edit/angular-i7wwfb运行并检查控制台以查看区别。