2017-05-15 19 views
1

私はAngular2/Ionic 2モバイルアプリケーションを開発しており、GoogleマップのJS APIを使用して地図上にマーカーを表示しています。マーカーをクリックすると、情報ウィンドウが開きます。この情報ウィンドウの中には、テキストとボタンがあります。ボタンをクリックすると関数が呼び出されます。この関数が単にconsole.logを実行すると、すべてが期待通りに機能します。Googleのマップ情報ウィンドウで、ページの機能にアクセスできる

しかし、範囲に関する問題がありました。ボタンをクリックすると、ページの機能にアクセスしたり、NavControllerを呼び出して別のページに移動したりすることはできません。

たとえば、NavControllerにアクセスするには何が必要ですか?私は非常に多くの異なるものを試しました。 NgZone、しかしそれを実行していない...

答えて

0

解決策を見つけました。それはとても簡単です。私はこのような「バインド」を使用して、私のページの機能にアクセスすることができます。

button.addEventListener('click', this.request.bind(this, variable1)); 
// calls the function "request(variable1)" 

全コンテキスト:

addInfoWindow(marker, origContent){ 
    let infoWindow = new google.maps.InfoWindow(); 

    var content = document.createElement('div'); 
    content.innerHTML = (origContent); 
    var button = content.appendChild(document.createElement('input')); 
    button.type = 'button'; 
    button.id = 'showMoreButton'; 
    button.value = 'show more'; 
    button.addEventListener('click', this.request.bind(this, resultsOneUser)); 

    google.maps.event.addListener(marker, 'click',() => { 
     infoWindow.setContent(content); 
    }); 
    } 

function request() { 
    this.navCtrl.push(RequestPage); 
} 
関連する問題