Ionic 3-以格式化的方式显示来自HTTP请求的JSON响应

时间:2018-07-24 13:22:27

标签: angular ionic-framework

我的Ionic 3应用程序向Rails后端发出HTTP请求。如果请求成功,则应用程序将执行其应做的一切,并且在出现错误时,API会返回并显示HTTP错误代码和JSON错误消息。

我希望我的应用以一种很好的方式向用户显示错误消息,而不是JSON。

error => {
  let alert = this.alertCtrl.create({
  title: 'Algo não deu certo...',
  subTitle: error.text(),
  buttons: ['OK']
});

结果是:

enter image description here

我想格式化它。我知道我可以遍历所有项目并显示它们,但我想知道是否有更简单的方法/更少的代码来完成这项工作。

2 个答案:

答案 0 :(得分:1)

如果我很好理解,您需要类似的东西

const error = {
  "from": ["can't be blank"],
  "to": ["can't be blank"],
  "passenger": ["must exist"],
};

const errorMessage = Object.keys(error).reduce((acc, cur) => `${acc} ${cur} ${error[cur]}`, '').slice(1);

console.log(errorMessage);

这是Array#Reduce的基本示例。

这是另一个带有格式化文本的示例:

const error = {
  "from": ["can't be blank"],
  "to": ["can't be blank"],
  "passenger": ["must exist"],
};

const errorMessage = Object.keys(error).reduce((acc, cur) => `${acc} ${cur.charAt(0).toUpperCase()}${cur.slice(1)}: ${error[cur]}!`, "").slice(1);

console.log(errorMessage);

答案 1 :(得分:0)

由于错误仅在返回错误时才会执行,因此您可以通过以下文本形式给出错误消息:

error => {
let alert = this.alertCtrl.create({
title: 'Algo não deu certo...',
subTitle: 'Your error Message',
buttons: ['OK']
});