Я использую ngx-toastr
в своих проектах Angular 5. У меня есть пользовательская форма, через которую я беру LAT и LNG для обратного геокодирования пользователя. Это условие применяется в моем коде.
Если город не найден, то должно отображаться сообщение toastr
, но это сообщение toastr
не отображается при первом нажатии, когда я нажимаю кнопку отправки, но когда я нажимаю второй раз, оно появляется. Что может быть причиной такого поведения?
Вот мой код:
saveProfile() {
this.getGeoLocation(this.latitude, this.longitude, (val) => {
console.log(val)
l
if (!val) {
console.log('val is null')
this.toastr.error('Latitude , Logitude is not valid', 'Error')
return;
}
...
})
}
Вот моя функция геокодирования:
getGeoLocation(lat: number, lng: number, cb) {
let geocoder = new google.maps.Geocoder();
let latlng = new google.maps.LatLng(lat, lng);
let request = {
latLng: latlng
};
geocoder.geocode(request, (results, status) => {
console.log(results)
if (results.length == 0) {
cb(null)
}
if (status == google.maps.GeocoderStatus.OK) {
let result = results[0];
console.log(result)
let rsltAdrComponent = result.address_components;
for (let ac = 0; ac < rsltAdrComponent.length; ac++) {
let component = rsltAdrComponent[ac];
switch (component.types[0]) {
case 'locality':
this.cityName = component.long_name;
break;
}
};
if (result != null) {
cb(this.cityName);
} else {
cb(null);
}
}
});
}