从app.module到应用程序的另一个模块的Angular传递HttpClient

时间:2018-07-01 04:44:25

标签: javascript angular

我正在开发Angular(ngx- *)NPM软件包。我已经正确编译了它,并正在使用npm link

在新的新项目中使用它

该服务具有以下构造函数以注入HttpClient和设置。

已更新。

我的服务

  constructor(private http: HttpClient, @Inject('configs') configs: ImyConfigs) {

MyService.Module

我在模块中具有root权限

    @NgModule({

      declarations: [
      ],
      imports: [
        CommonModule,
 // note that I am not importing HttpClientModule
 // My understanding is that if I do I will get duplicate issues?
      ],
      exports: [],
      providers: []
    })
    export class MyModule {
          static forRoot(configs?: ImyConfigs): ModuleWithProviders {
            return {
              ngModule: MyModule,
              providers: [MyService, { provide: 'configs', useValue: configs }]
            };
          }

App.module

现在在我的主项目(使用此模块的新Angular项目)中,我想使用此服务。

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule,
    HttpClientModule,
    MyModule.forRoot(MYCONFIG_CONST)    

  ],
  providers: [],
  bootstrap: [AppComponent]
})
export class AppModule { }

我一直收到以下错误:

ERROR Error: StaticInjectorError(AppModule)[MyService -> HttpClient]: 
  StaticInjectorError(Platform: core)[MyService -> HttpClient]: 
    NullInjectorError: No provider for HttpClient!

在将HttpClient注入myService方面我做错了什么?

编辑:我将在下面回答。

1 个答案:

答案 0 :(得分:0)

ng serve  --preserve-symlinks

解决了问题。

这是一个旧项目,它已经被添加到package.json中,我只是忘了它-持续了很长时间。