2017-08-13 14 views
0

Googleマップを使用してionic 2アプリケーションを構築しています。ユーザーが情報ウィンドウの外側をクリックすると、インフォボックスを閉じるしようとしています。 infowindow.close()を使用している例がたくさんありますが、どうして私がそれを適用できなかったのか分かりません。infowindow.close()を使用してInfoWindowを閉じることができません

エラーメッセージproperty 'close' does not exist on type never。あなたは、以下の文でfalseからthis.prev_infowindowを割り当てる

typescrip

prev_infowindow: boolean = false; 

    addInfoWindow(){ 

    this.http.get(this.baseURI) 
    .map(res => res.json()) 
    .subscribe(data => { 

    let infoData = data; 
     let content = "<ion-item>" + 
    "<h2>" + infoData.Title + "</h2>" 

let infoWindow = new google.maps.InfoWindow({ 

content: content 

}); 

google.maps.event.addListener(marker, 'click',() => { 

    if(this.prev_infowindow) { 
    this.prev_infowindow.close(); // error message occurs 
} 

this.prev_infowindow = infoWindow; 
infoWindow.open(this.map, marker); 
    }); 

}); 

} 
+0

は、あなたの代わりに 'this.prev_infoWindow.close()'の 'infoWindow.closeを()'行うことを意味するものではありませんでしたか? 'prev_infoWindow'とは何ですか?あなたのコードスニペットでは使用されていません – Teh

答えて

0

if(this.prev_infowindow = false) { 
    this.prev_infowindow.close(); // error message occurs 
} 

falsethis.prev_infowindowの割り当てはif条件が実行されないことになります。 TypeScriptはこのエラーをスマートに推論します。

比較のために==または===を使用してください。


もうこれは、あなたがcloseメソッドを持っていないbooleanとしてprev_infowindowを入力したことです。

InfoWindowを保持する場合は、それを入力します。あなたはInfoWindowの型定義を持っていない場合やanyとして、それを入力します。

prev_infowindow: InfoWindow; 
// OR 
prev_infowindow: any; 
+0

こんにちは、あなたの答えを試しました。エラーメッセージが 'property 'close'に変更されました。型falseには存在しません.'そして、' this.prev_infowindow == true'を変更すると、 'property 'close'は型trueには存在しません。 –

+0

更新された答えを見てください。 – Saravana

関連する問題