2016-09-19 5 views
1

서비스를 CustomExceptionHandler에 삽입하려고하면 Angular injector가 서비스를 찾을 수 없습니다. 각도 2 주사기가 CustomExceptionHandler를로드 할 때 서비스를 찾을 수 없습니다.

오류 : Uncaught Can't resolve all parameters for CustomExceptionHandler: (?).

셋업 :

CustomExceptionHandler

import { ExceptionHandler } from '@angular/core'; 

import { ServiceA } from '../services/a.service'; 

export class CustomExceptionHandler extends ExceptionHandler { 

    constructor(private serviceA: ServiceA) { 
    super(null, null); 
    } 

    call(error, stackTrace = null, reason = null) { 
     //do something with the service 
    } 
} 

app.module

@NgModule({ 
    declarations: [ 
    ... 
    ], 
    imports: [ 
    ... 
    ], 
    providers: [ 
    ServiceA, 
    { provide: ExceptionHandler, useClass: CustomExceptionHandler }, 
    ], 
    bootstrap: [AppComponent], 
}) 
export class AppModule { } 
+0

'수입 {서비스}에서 '../ 서비스/a.service를', '아마 수입'해야한다 { (서비스 이름에 A가 누락되었습니다.) –

답변

1

갱신ExceptionHandlerErrorHandlerhttps://stackoverflow.com/a/35239028/217408

orgiginal

로 이름이 변경되었습니다 당신의 CustomExceptionHandler 클래스에 @Injectable()를 추가합니다.

app.module.ts에서 제공의 또 다른 하나 CustomExceptionHandler를 추가

@NgModule({ 
    declarations: [ 
    ... 
    ], 
    imports: [ 
    ... 
    ], 
    providers: [ 
    ServiceA, 
    CustomExceptionHandler, 
    { provide: ExceptionHandler, useClass: CustomExceptionHandler }, 
    ], 
    bootstrap: [AppComponent], 
}) 
export class AppModule { } 
+0

답장을 위해 Gunter와 Ade에게 감사한다. 그것을 고정시킨 것은이 두 가지의 결합이었습니다. @Injectable()을 추가해야하고 app.module.ts의 일반 공급자로 나열해야하며 useClass로 나열하여 ExceptionHandler를 재정의해야합니다. 이로 인해 누가 대답을 받아 들일지에 대한 곤경에 처하게됩니다. 유형을 조합하면 누구나 얻을 수 있습니다. 다시 한 번 감사드립니다! –

1

당신에게 뿐만 아니라 providersCustomExceptionHandler하고 종속성을 추가해야합니다

@NgModule({ 
    declarations: [ 
    ... 
    ], 
    imports: [ 
    ... 
    ], 
    providers: [ 
    ServiceA, 
    CustomExceptionHandler, 
    { provide: ExceptionHandler, useClass: CustomExceptionHandler }, 
    ], 
    bootstrap: [AppComponent], 
}) 
export class AppModule { } 
+0

'Uncaught CustomExceptionHandler에 대한 모든 매개 변수를 해결할 수 없습니다 : (?).' –

+0

이것은 문제가되지 않습니다. 그래도 감사합니다. –

+0

답장을 보내 주셔서 감사합니다. 그것을 고정시킨 것은이 두 가지의 결합이었습니다. @Injectable()을 추가해야하고 app.module.ts의 일반 공급자로 나열해야하며 useClass로 나열하여 ExceptionHandler를 재정의해야합니다. 이로 인해 누가 대답을 받아 들일지에 대한 곤경에 처하게됩니다. 유형을 조합하면 누구나 얻을 수 있습니다. 다시 한 번 감사드립니다! –

관련 문제