我正在尝试在角度5项目上设置哨兵。指示显示放置在提供者中的对象,如下所示:
import * as Raven from 'raven-js';
import { BrowserModule } from '@angular/platform-browser';
import { NgModule, ErrorHandler } from '@angular/core';
import { AppComponent } from './app.component';
Raven
.config('https://KEY')
.install();
export class RavenErrorHandler implements ErrorHandler {
handleError(err:any) : void {
Raven.captureException(err.originalError);
}
}
@NgModule({
imports: [ BrowserModule ],
declarations: [ AppComponent ],
bootstrap: [ AppComponent ],
providers: [ { provide: ErrorHandler, useClass: RavenErrorHandler } ]
})
export class AppModule { }
我的项目在providers数组中还有一些东西,看起来像这样:
providers: [
{ provide: ErrorHandler, useClass: RavenErrorHandler }, //sentry
MapDataService,
GraphService
]
这是允许角度?我问,因为我对此很陌生而且我不能让哨兵上班,我只是对这部分感到不安,在我开始寻找其他地方之前,我想看看这是否正常。
答案 0 :(得分:0)
这完全没问题。您正在AppModule中注册三个提供商 - ErrorHandler
,MapDataService
和GraphService
。
并且还说每次应用程序需要ErrorHandler时,它应该使用您自己的RavenErrorHandler
代替。