Angular 不会在控制台上显示 JavaScript 错误

llu*_*isd 1 javascript console angular

我不知道发生了什么,但有一天我在控制台上看不到任何 javascript 错误。

如果页面因某些 javascript 错误而空白,我需要在该 Angular 函数上放置一个断点以查看哪个是错误。

function getDebugContext(error) {
return (/** @type {?} */ (error))[ERROR_DEBUG_CONTEXT];
Run Code Online (Sandbox Code Playgroud)

}

Asa*_*nka 7

请创建一个名为 GlobalErrorHandler.ts 的 .ts 文件并粘贴它

import { Router } from '@angular/router';
import { ErrorHandler, Injectable, Injector } from '@angular/core';
@Injectable()
export class GlobalErrorHandler implements ErrorHandler {
  constructor(private injector: Injector) { }
  handleError(error) {
    const router = this.injector.get(Router);
    console.log(error.stack.toString());

  }

}
Run Code Online (Sandbox Code Playgroud)

将此导入您的 app.module.ts 提供程序

providers: [

    {
      provide: ErrorHandler,
      useClass: GlobalErrorHandler
    }
  ],
Run Code Online (Sandbox Code Playgroud)

这应该有效。

  • 谢谢!有用。我将 console.log 更改为 console.error (2认同)
  • 为什么我们要注入“Injector”并获取对路由器的引用? (2认同)