Angular - 打开模态组件的传单标记事件

Angular - leaflet marker event to open modal component

我将传单与 angular 一起使用,我想在打开模式组件的标记上单击 addEventListener。但问题是,当我 运行 我下面的代码时,addEventListener 打开了模态组件,而我没有点击标记。

        let m =  new L.Marker([33, 44], {
          icon: new L.DivIcon({
            className: 'my-div-icon',
            html: `
            <div>
           <img src="${f[1].weather_status_icon_ar}"/style="width: 30px;height: 
           30px;">
           </div>`

          })

}).addEventListener('click',this.navigate(this.LocationID)).addTo(this.weather)

模态组件

    async navigate(LocationID) {
    const modal = await this.modalController.create({
      component: WeatherDetailsPage,
    });

    await modal.present();
  }

我想通过标记点击手动打开模态组件而不是自动

这是预料之中的,因为您调用 this.navigate(this.LocationID),它会打开一个模式,并将此函数调用返回的值 返回 传递给 addEventListener

即您的代码相当于:

const result = this.navigate(this.LocationID);
....addEventListener('click', result)

你不应该调用这个函数。您应该改为将调用此函数的函数传递给 addEventListener()

addEventListener('click', () => this.navigate(this.LocationID))