Angular 4错误解释错误

时间:2017-10-09 20:09:06

标签: angular typescript

我有以下错误处理功能:

handleError(error) {
    this.loading = false;
    console.log(error);
    let errorMessage;
    if (error.error && error.error.detail) {
      errorMessage = error.error.detail;
    } else {
      errorMessage = error.status + ': ' + error.statusText;
    }

    this._snackbar.open("Error: " + errorMessage, 'OK');
  }

以下是我如何使用它:

this._apiService.stop(this.element.id).subscribe(element => {
  this.element = element;
}, error => {
  this.handleError(error);
});

它收到API错误并尝试显示其详细信息(如果提供),或仅显示状态文本。

此代码在开发环境(ng serve)中完美运行,但在生产中不起作用(ng build --prod)。

我注意到在制作中如何解释错误细节有所不同,请参见下面的屏幕截图:

开发:
dev

生产:
production

您可以看到,在开发过程中,error.error是一个以detail为参数的对象。在生产中,error.error是一个对象作为字符串 为什么会这样?如果重要的话,Django Rest Framework会提供错误。

是否有参数定义了角度将如何解析嵌套对象?

修改
我注意到,ng build --prod在我的本地计算机上工作正常(Windows 10)。问题出在CentOS服务器上 也许这是npm设置的一些问题?

0 个答案:

没有答案