Mapbox 弹出窗口中的按钮未执行功能
Button inside Mapbox popup not executing function
我试图在单击 Mapbox 弹出窗口内的按钮时打开模式。 HTML 正在正确呈现,但我不确定为什么未执行该功能。
let marker = new mapboxgl.Marker(el);
try {
marker.setLngLat([eventInfo.location[0], eventInfo.location[1]])
.setPopup(new mapboxgl.Popup({offset: 32})
.setHTML('<ion-button (click)="logger()">View Full</ion-button>'))
.addTo(this.map);
} catch (e) {
console.log(e.message);
}
以上是我如何创建标记并附加弹出窗口。 logger()
是我期望执行的功能。
logger(){
console.log('hi');
}
我对 Ionic 的作品一无所知,但我猜你不能只将 Ionic HTML 元素 (<ion-button>
) 传递给 setHTML
并期望它得到全离子处理。 (例如,React 和 Vue 就是这种情况。)
一个解决方案是在 setHTML
:
中写入常规原始 HTML
.setHTML('<button id="view-full">View Full')
.addTo(this.map);
document.getElementById('view-full').addEventListener('click', logger)
或者,可能有一些步骤通过 Ionic 传递您的 HTML 以使其按照您的预期运行。
我试图在单击 Mapbox 弹出窗口内的按钮时打开模式。 HTML 正在正确呈现,但我不确定为什么未执行该功能。
let marker = new mapboxgl.Marker(el);
try {
marker.setLngLat([eventInfo.location[0], eventInfo.location[1]])
.setPopup(new mapboxgl.Popup({offset: 32})
.setHTML('<ion-button (click)="logger()">View Full</ion-button>'))
.addTo(this.map);
} catch (e) {
console.log(e.message);
}
以上是我如何创建标记并附加弹出窗口。 logger()
是我期望执行的功能。
logger(){
console.log('hi');
}
我对 Ionic 的作品一无所知,但我猜你不能只将 Ionic HTML 元素 (<ion-button>
) 传递给 setHTML
并期望它得到全离子处理。 (例如,React 和 Vue 就是这种情况。)
一个解决方案是在 setHTML
:
.setHTML('<button id="view-full">View Full')
.addTo(this.map);
document.getElementById('view-full').addEventListener('click', logger)
或者,可能有一些步骤通过 Ionic 传递您的 HTML 以使其按照您的预期运行。