如何在angular2中向不同的http错误显示不同的错误消息?

时间:2017-06-19 05:11:23

标签: javascript angular ionic-framework angular2-observables

我已添加以下代码。基本上我想向不同的场景显示错误消息(返回HTTP状态代码)。我正在努力掌握关于可观察物等的所有这些概念,但到目前为止我还没有到达任何地方。希望有人可以帮助我。

bool isContainId = List<one>.Contains(two.Id);

if (isContainsId)
{
     // do something
}

else
{
     // do something
}

2 个答案:

答案 0 :(得分:1)

在catch块中的错误对象中将有一个status属性,因此您可以将http错误代码作为error.status进行访问。通过使用if条件检查此error.status值,您可以处理您的方案。但是看看你的代码,似乎你正在从错误代码创建验证消息。我认为最好从服务器返回验证消息(如果你可以编辑API),而不是在代码中操作它。因此,如果您希望将来更改验证消息,则可以在不更改任何客户端代码的情况下执行此操作。

答案 1 :(得分:0)

  

您可以从服务中抛出错误,并获取组件

register(userData): Observable<UserModel[]>{
  return this.http.post(this.config.apiUrl+this.config.user.register,
         JSON.stringify(userData))
        .map((res: Response) => res.json())
        .catch(
        (error: Response) => {
            return Observable.throw(error.json() as JsonResponse)
        });;
}

在Component中你可以

test(): void {
    this.testService.register().subscribe(
        (data: UserModel[]) => {
            console.log(data);
        }, (error: JsonResponse) => {
            console.log(error);
        }
    )
}