2016-09-19 28 views
1

サービスを私のCustomExceptionHandlerに注入しようとすると、角インジェクタはサービスを見つけることができません。角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

更新ExceptionHandler

ErrorHandlerhttps://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内の通常のプロバイダとしてリストする必要があります。また、ExceptionHandlerをオーバーライドするuseClassとしてリストする必要があります。これは、答えとして誰を受け入れるかについての多少の苦境を私に残す。どちらのタイプの組み合わせでもそれを得ることができます。再度、感謝します! –

1

ます同様providersCustomExceptionHandlerとその依存関係を追加する必要があります。

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

「Uncaught CustomExceptionHandlerのすべてのパラメータを解決できません:(?)」というエラーを改訂しました: –

+0

これはそれではなく、問題は解決しません。あなたの時間のためにありがとう –

+0

あなたの答えのためにGunterとadeの両方に感謝します。それを固定したのはこれらの両方の組み合わせでした。 @Injectable()を追加する必要があり、それをapp.module.ts内の通常のプロバイダとしてリストする必要があります。また、ExceptionHandlerをオーバーライドするuseClassとしてリストする必要があります。これは、答えとして誰を受け入れるかについての多少の苦境を私に残す。どちらのタイプの組み合わせでもそれを得ることができます。再度、感謝します! –

関連する問題