18
我已經構建了一個ErrorHandlerLogger這是一項擴展ErrorHandler並將錯誤消息記錄到遠程存儲庫的服務。Angular2 - 在將http注入到自定義服務中時出現'無法解析所有參數'錯誤
ErrorHandlerLogger需要由HTTP模塊提供的角度HTTP客戶端。
在ErrorHandlerModule我導入的HttpModule和定義ErrorHandlerLogger作爲供應商。
在AppModule我導入ErrorHandlerModule。
當我啓動應用程序,我得到了以下錯誤消息
Uncaught Error: Can't resolve all parameters for ErrorHandlerLogger: (?).
這裏我的代碼
ErrorHandlerModule
import { NgModule, ErrorHandler } from '@angular/core';
import { HttpModule } from '@angular/http';
import {ErrorHandlerLogger} from './error-handler-logger';
@NgModule({
declarations: [],
exports: [],
imports: [
HttpModule
],
providers: [
{provide: ErrorHandler, useClass: ErrorHandlerLogger}
]
})
export class ErrorHandlerModule {}
ErrorHandlerLogger
import { ErrorHandler } from '@angular/core';
import { Http, Headers, RequestOptions, Response } from '@angular/http';
import { Observable } from 'rxjs/Observable';
import './rxjs-operators';
export class ErrorHandlerLogger extends ErrorHandler {
constructor(private http: Http) {
super();
}
handleError(error) {
// my logic
}
}
的AppModule
import { BrowserModule } from '@angular/platform-browser';
import { NgModule } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { HttpModule } from '@angular/http';
import {ErrorHandlerModule} from './error-manager/error-handler.module';
@NgModule({
declarations: [
AppComponent
],
imports: [
BrowserModule,
FormsModule,
HttpModule,
routing,
ErrorHandlerModule
],
providers: [appRoutingProviders],
bootstrap: [AppComponent]
})
export class AppModule { }
任何幫助是非常讚賞
感謝。正確和超快。 – Picci
根據Angular2風格指南,'@Injectable()'應該總是被添加到injectables中,因爲在稍後添加參數時這很容易忘記(這很常見)。 –
感謝您節省我的一天:))) – casper123