Angular-来自响应的解析器错误

时间:2018-08-19 08:01:32

标签: angular

当发送的数据不正确时,它会从服务器表中获取验证器错误,如图所示。我的问题是如何到达此数组,以便您不必在合理的err.error.erros.email或err.error.erros.password上单独引用每个元素。我想使用sweetalert来显示这些错误,一个在另一个下面。

我的代码:

 this.http.post('https://mylocalhost/api/1.3/user/login', params, {headers: config})
        .subscribe(res => {
                this.userData = res;
                swal('App', 'Zostałeś zalogowany pomyślnie', 'success');
                localStorage.setItem('x-ticket', this.userData['x-ticket']);
            },
            (err: HttpErrorResponse) => {
                console.log(err);
            });

Screenshot

2 个答案:

答案 0 :(得分:2)

您可以使用以下内容将其转换为数组

var error = {
  errors: {
     email: "This is an email error",
     password: "This is a password error"
  }
}


// Create an array from the object
let arr = Object.keys(error.errors).map((key) => error.errors[key]);

// Some examples of using the value
console.log(arr);
console.log(arr[0]);
console.log(arr.join("\n"));

一旦有了数组,就可以显示所需的数组,而无需引用每种错误类型。

答案 1 :(得分:0)

下面是我正在使用的有角度的5个代码示例之一。您应该可以进行编辑并使其适合您的情况。

postNewInventoryEntry(data: any) {
    return this.http.post(this.api_url + '/inventory-management/inventory/', data)
      .map(res => res)
      .catch((e: any) => {
      alert('ERROR: ' + e.error['msg']);
      return _throw(e.error)});
  }