你好,我已经搜索了很多个小时了,希望你能帮助我 :)
想法
当在谷歌地图上点击信息窗口时,我想显示一个页面。(使用Ionic 2的ModalController)
问题
但是点击没有反应..
var infoWindow = new google.maps.InfoWindow({
content: '<h2 (click)="goToProductPage(product)">Click me</h2>'
});
goToProductPage(product :any){
let modal = this.modalCtrl.create(ProductPage, product);
modal.present();
}
很遗憾,这个方法不起作用,我还尝试了使用内容节点、onclick=""
和JavaScript函数。
这里有另一个类似的问题没有得到解决。
最好的问候, Luis
编辑
setProductMarker(product :any, productLocation :any){
var contentWindow = "<h2 id='clickableItem'>Click me</h2>" + product.productName + "<img src='" + product.imgUrl + "' width='60' height='60' /> <br/>" + product.date
var clickableItem = document.getElementById('clickableItem');
clickableItem.addEventListener('click' , () => {
this.goToProductPage(product);
});
var productMarker = new google.maps.Marker({
position: new google.maps.LatLng(JSON.parse(productLocation).latitude, JSON.parse(productLocation).longitude),
map: this.map,
title:"Product"
})
var infoWindow = new google.maps.InfoWindow({
content: contentWindow
});
infoWindow.addListener('click', () => {
alert("yeah");
console.log("yeah");
});
productMarker.addListener('click', event => {
infoWindow.open(this.map, productMarker);
this.productNow = product;
});
}
(click)="goToProductPage(product)"
是否可以这样触发。你可以尝试这个方法吗?对我来说有效。infoWindow.addEventListener('click', () => {})
。只是告诉你,在我的情况下,我准备了一个从DOM中获取的HTML元素,而不是infoWindow。 - Sagar Kulkarni