Angular2 - 'Can' t 在将 http 注入(inject)自定义服务时解决所有参数错误

标签 angular angular2-services angular2-modules

我构建了一个ErrorHandlerLogger,这是一个扩展 ErrorHandler 并将错误消息记录到远程存储库的服务。

ErrorHandlerLogger 需要 HttpModule 提供的 Angular 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
    }

}

应用模块

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 {

关于Angular2 - 'Can' t 在将 http 注入(inject)自定义服务时解决所有参数错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39847356/

相关文章:

Angular 4.0.0 找不到 Bootstrap 代码

angular - 模块 'MyCustomModule' 导入的意外值 'AppModule'

Angular 和 RxJS 5 - 保留内部 Observable 中超出高阶 Observable 的值

javascript - 当我在它外面单击时如何关闭 Angular 中的 `div` 框。不使用 jQuery

javascript - 如何使用 angular2 根据列表中选定的对象过滤内容

angular - 组件可注入(inject)?

angular - 如何从指令中观察服务内简单变量的变化?

angular - 模块是否会在延迟加载模块中加载两次

Angular 4 + Material 2 SASS 编译错误 "File to import not found or unreadable"

angular2-services - 如何在 Angular 2 中的自定义管道中使用服务