1
在休耕代碼我想拖標記LatLng
傳遞到一個函數來獲取地址,但它不工作如何通過標記的新位置爲功能
public LastLat : any;
public LastLng : any;
。 。 。
lastLatLng(marker){
google.maps.event.addListener(marker, 'dragend', function() {
this.LastLat= marker.position.lat();
this.LastLng= marker.position.lng();
});
console.log(this.LastLat,this.LastLng);
this.Getaddress(this.LastLat,this.LastLng);
}
Getaddress(LastLat, LastLng){
this.http.get('http://nominatim.openstreetmap.org/reverse?format=json&lat='+LastLat+ '&lon='+LastLng + '&zoom=18&addressdetails=1')
.map(res => res.json())
.subscribe(data => {
this.data = data.display_name;
console.log(this.data);
});
}
運行時,它
說LastLat,LastLng不確定的。 Getaddress失敗,因爲this.LastLat,this.LastLng
也沒有數據console.log。
我已經試過,但顯示錯誤:'運行時錯誤 this.Getaddress不是function' – RSA
正確的。在事件處理程序中,'this'不指向您的組件,這就是它失敗的原因。你應該使用lambda來保存'this'而不是普通的函數。我已經更新了我的答案。 –
謝謝,這工作正常,請你給我指導如何編寫函數來返回或操作公共變量。 – RSA