угловая библиотека с отсутствующим сервисом HttpClient - PullRequest
1 голос
/ 25 октября 2019

Я создал общую библиотеку Angular 8 со службой, которая отвечает за выполнение http-вызовов для извлечения некоторых данных. библиотека хорошо, когда я импортирую в свой модуль, я получаю ниже ошибку

Я добавил, поэтому служба будет добавлена ​​в root.

@Injectable({
  providedIn: 'root'
})

Я также импортировал службу в AppModule,импортированный HttpClientModule

MyServiceProvider в lib

@Injectable({
  providedIn: 'root'
})

export class MyServiceProvider {

  private endpointUrl: string;

  constructor(
    private http: HttpClient,
    private proxy: ProxyService) {

    this.endpointUrl = this.proxy.getEndpoint();
  }

  getMydata() {

    return this.http.post(this.endpointUrl).pipe(
      map(response => {
        console.log(response);
      })
      , catchError((error: HttpErrorResponse) => {
        return throwError(error.error);
      }));
  }

}

в AppModule


import { MyServiceProvider } from 'my-lib';


@NgModule({
  declarations: [AppComponent],
  entryComponents: [],
  imports: [
    BrowserModule,
    HttpClientModule,
    IonicModule.forRoot(),
    AppRoutingModule,
    IonicStorageModule.forRoot()
  ],
  providers: [
    StatusBar,
    SplashScreen,
    { provide: RouteReuseStrategy, useClass: IonicRouteStrategy },
    MyServiceProvider ---> (also tried without this)
  ],
  bootstrap: [AppComponent]
 })
 export class AppModule { }

Ошибка: ошибка (в обещании): NullInjectorError: StaticInjectorError (AppModule)MyServiceProvider -> HttpClient]: StaticInjectorError (Платформа: ядро) [MyServiceProvider -> HttpClient]:

1 Ответ

0 голосов
/ 26 октября 2019

Вы должны импортировать HttpModule в свой модуль.

import { HttpModule } from '@angular/http';

@NgModule({
    imports: [
        HttpModule
    ]
    ...
})
...