2017-10-14 101 views
1

喜中2單擊事件我試圖內的谷歌地圖信息窗口火從按鈕的事件。問題是我不能用任何方式使它燃燒。離子的信息窗口的GoogleMaps

addMarket(latitud, longitud, sensorData) { 

let marker = new google.maps.Marker({ 
    draggable: false, 
    position: { lat: latitud, lng: longitud }, 
    map: this.map,//set map created here 
    title: sensorData.sensor 
}); 
marker.addListener('click', function() { 
    infowindow.open(this.map, marker); 
}); 

let bodyMessege = 'Nombre del Sensor: ' + sensorData.sensor + '<br>' + 
    'Componente Descripcion: ' + sensorData.componentDesc + '<br>' + 
    ' description: ' + sensorData.description + '<br>' + 
    ' Tipo de sensor: ' + sensorData.type + '<br>' + 
    ' Unidad de sensor: ' + sensorData.unit + '<br>' + 
    'Tipo de dato: ' + sensorData.dataType + '<br>' + 
    ' <button ion-button (click)="this.navCtrl.push(DetalleSensorPage)" >Default</button>'; 

//  ' <button ion-button="" onclick=console.log("log");' anda 
//this.pushPage=DetalleSensorPage; 
var infowindow = new google.maps.InfoWindow({ 
    content: bodyMessege 
}); 

任何提示將受到歡迎表示感謝。 :)

+0

我能解決這個問題,但我不知道這是否是同樣的情況。在我的最後,要求只在時間顯示_one信息視圖,並在其中包含一個按鈕。所以,如果你第一次打開信息視圖,然後你點擊另一個標記,第一個信息視圖將被關閉,只有新的一個將被顯示。那會好嗎? – sebaferreras

+0

這是當一個標記被按下的信息窗口同樣的要求只有一個彈出窗口中將顯示的時間,顯示信息和有一個按鈕重定向到另一個頁面,顯示更多的細節。我試圖從按鈕調用一個函數,但是我甚至無法使控制檯日誌工作。 –

+0

如果有幫助,你可以[看看我的代碼(https://github.com/philipbrack/paystumped_ionic2fullapp/blob/master/src/pages/map-content/map-content.ts)一個類似的實現方式,其中我單擊地圖區域時打開InfoWindow。僅供參考,這也是一個Ionic 2應用程序。 –

回答

0

我已經找到了我自己的項目該解決方案:(https://forum.ionicframework.com/t/ng-click-in-google-maps-infowindow/5537/6

的關鍵因素是id =「點擊」您在下面的getElementById查找。

let content = '<div class="infowindow"><p id="tap">your text here</p></div>'; 

let infoWindow = new google.maps.InfoWindow(
    { 
    closeBoxURL: "", 
    content: content 
    } 
); 
infoWindow.open(this.map, marker); 

google.maps.event.addListenerOnce(infoWindow, 'domready',() => { 
    document.getElementById('tap').addEventListener('click',() => { 
    //alert('Clicked'); 
    console.log("touch"); 
    this.closeInfoViewWindow(infoWindow); 
    this.openEventDetailModal(event); 
    }); 
}); 

希望這會幫助你和他人。