我已经调用了一个函数ngOnInit()
,现在我试图从上一个函数中调用另一个函数,但是我无法从第二个函数中获取结果
ngOnInit() {
this.mapsAPILoader.load().then(() => {
let autocomplete = new google.maps.places.Autocomplete(this.searchElement.nativeElement, {types: ['address']});
autocomplete.addListener('place_changed', () => {
this.ngZone.run(() => {
let place: google.maps.places.PlaceResult = autocomplete.getPlace();
if (place.geometry === undefined || place.geometry === null) {
return;
}
this.codeAddress(place.formatted_address, 'pickup');
});
});
});
}
codeAddress(address: string, type) {
var geocoder = new google.maps.Geocoder();
geocoder.geocode({'address': address}, (results, status) => {
if (status == google.maps.GeocoderStatus.OK) {
this.getdistance();
} else {
alert('Request failed.');
}
});
}
getdistance() {
console.log('get distance called');
}
在这里的代码中,我试图getdistance()
从codeaddress()
函数中调用函数。但这给了我this.getdistance()
不是功能的错误
您正在尝试this
从回调中进行访问,可以function(){}.bind(this)
使该函数使用正确的上下文或使用ES6箭头函数。
geocoder.geocode({ 'address': address }, (results, status) => {
if (status == google.maps.GeocoderStatus.OK) {
this.getdistance();
}
else {
alert("Request failed.");
}
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句