ngx-toastr 未在第一次点击时显示或 Ui 未在 angular 5 摘要周期中使用 google 地图 api 进行更新
ngx-toastr not showing up on first click or Ui not updating in angular 5 Digest cycle using google map apis
我在 Angular 5 个项目中使用了 ngx-toastr
。我有用户表单,通过它我将 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);
}
}
});
}
我正在使用 google 地图 API,它们 运行 在 angular 的范围之外。所以这是 angular 区域的问题。我为此
使用了区域 运行 函数
this.ngZone.run(() => {
this.toastr.warning('This latitude and longitude is not found in selected city! fill
the correct one')
})
我在 Angular 5 个项目中使用了 ngx-toastr
。我有用户表单,通过它我将 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);
}
}
});
}
我正在使用 google 地图 API,它们 运行 在 angular 的范围之外。所以这是 angular 区域的问题。我为此
使用了区域 运行 函数this.ngZone.run(() => {
this.toastr.warning('This latitude and longitude is not found in selected city! fill
the correct one')
})