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))
我将传单与 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))