Angular Передача HttpClient из app.module в другой модуль в сервис - PullRequest
0 голосов
/ 01 июля 2018

Я разрабатываю угловой (ngx- *) пакет NPM. Я правильно его скомпилировал и использую в новом новом проекте, используя npm link

Сервис имеет следующий конструктор для внедрения HttpClient и настроек.

Обновлены.

MyService

  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 голосов
/ 01 июля 2018
ng serve  --preserve-symlinks

Решил проблему.

Это старый проект, и он уже был добавлен в package.json, я просто забыл об этом - на долго ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...