html - 如何在Angular中仅打印错误消息
问题描述
我正在尝试找到一种仅从我的 api 调用错误中打印“消息”部分的方法,但不确定如何仅获取该部分,因此如果我能得到任何建议或帮助,我将不胜感激。
所以这就是当 api 调用出现错误时它在网络选项卡中显示的内容(图片)
saveChartClick(err: any) {
// update the chart data here
if(!this.isTextChart && !this.isFigure && !this.isGrid){
this.chartService.updateChart(this.chart).pipe(takeUntil(this.death$)).subscribe((updated) => {
if(updated) {
this.chart = updated;
this.snackbar.open("Chart has been updated.", " ", {duration: 2500});
this.store.dispatch(updateChart({chart: this.chart}));
} else {
this.snackbar.open(err.message, "close ", { duration: 2500 });
}
}, err => {
this.snackbar.open(err.message, "close ", { duration: 2500 });
})
}
else{
// save the new data here
this.store.dispatch(saveChartData({ guid: this.chart.guid, data: this.chartData }));
}
}
现在它向我显示了这个,这不是我想要显示的,因为它并不能真正说明错误是什么。
错误在后端处理,有时我会收到不同的错误消息,所以我不想硬编码。
解决方案
在 Angular 的HttpErrorResponse
对象中,这就是message
属性的样子。你想要的不是
this.snackbar.open(err.message, "close ", { duration: 2500 });
但
this.snackbar.open(err.error.message, "close ", { duration: 2500 });
或者,为了安全起见(error
可以为空),
const errorMessage = err.error ? err.error.message : err.message;
this.snackbar.open(errorMessage, "close ", { duration: 2500 });
推荐阅读
- php - 消息:未定义变量:控制器下的电子邮件
- mysql - 如何修复更新语句阻塞 MYSQL 中的多个表
- postgresql - 在多台主机上虚拟化超级账本网络的问题
- python - 测试 Pandas 列是否为日期时间类型
- wordpress - Wordpress 搜索数据库值并返回
- angular - 在 ng-select 中按元素名称和 id 搜索元素
- caching - 主存访问时间差异的原因
- pattern-matching - 为什么将 AIML 视为模式匹配?不是字符串匹配?
- javascript - 在 Node.js 中处理“无法得到任何响应”
- javascript - 删除 yAxis 时留下一些循环迭代 - Highcharts/Angular