Angular2 - 将 http 注入自定义服务时出现“无法解析所有参数”错误
Angular2 - 'Can't resolve all parameters' error while injecting http into a custom service
我构建了一个 ErrorHandlerLogger,这是一个扩展 ErrorHandler 并将错误消息记录到远程存储库的服务。
ErrorHandlerLogger 需要 Angular http 由 HttpModule 提供的客户端。
在 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 { }
非常感谢任何帮助
@Injectable() // <<<=== required if the constructor has parameters
export class ErrorHandlerLogger extends ErrorHandler {
我构建了一个 ErrorHandlerLogger,这是一个扩展 ErrorHandler 并将错误消息记录到远程存储库的服务。
ErrorHandlerLogger 需要 Angular http 由 HttpModule 提供的客户端。
在 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 { }
非常感谢任何帮助
@Injectable() // <<<=== required if the constructor has parameters
export class ErrorHandlerLogger extends ErrorHandler {