Ввод объекта в провайдеры в @NgModule - PullRequest
0 голосов
/ 08 мая 2018

Я пытаюсь настроить часовой на 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: [
{ provide: ErrorHandler, useClass: RavenErrorHandler }, //sentry
MapDataService,
GraphService
]

Isэто разрешено в угловых?Я спрашиваю, потому что я очень новичок в этом, и я не могу заставить часового работать, и я просто чувствую себя неловко из-за этой части, и прежде чем я начал искать в других местах, я хотел посмотреть, все ли в порядке.

1 Ответ

0 голосов
/ 09 мая 2018

Это совершенно нормально. Вы регистрируете трех провайдеров в вашем AppModule - ErrorHandler, MapDataService и GraphService.

А также, говоря, что каждый раз, когда приложение требует ErrorHandler, оно должно вместо него использовать ваш собственный RavenErrorHandler.

...