Angular 7 Dependency Inject HttpClient в функцию экспорта Typescript - PullRequest
0 голосов
/ 25 февраля 2019

Привет, мое угловое мастерство не так хорошо для того, чего я пытаюсь достичь.

У меня есть export function, который выбирает данные из БД:

export async function BoardData(httpClient: HttpClient) {
  ...
  return result;
}

Как бы выЗависимость внедрить HttpClient в это?

Я не хочу использовать Injector, потому что это потребует от меня, чтобы заключить мой http-запрос в setTimeout(), который не работает внутри и Observable.subscribe().

Я читал о поставщиках модулей, в частности о параметре useFactory, но не смог заставить его работать.Пожалуйста, помогите.

PS На стеке мало вопросов подобного рода, НО ни один из них не отвечает на ВОПРОС должным образом.

Эта функция затем вызывается изнутриconst экспорта как показано ниже:

export const initialState: BoardState = {
  board: BoardData(http),
  draggingBoard: null,
  cardInFlight: null,
  listInFlight: null,
  nextId: 1000,
  spilledCard: false,
  isCopying: false,
  shouldCopy: false
};

Ответы [ 2 ]

0 голосов
/ 09 августа 2019

в моем случае я просто передаю httpClient в качестве параметра экспортируемой функции, например,

getData(){
    .....
return exportedFunctionToGetData(this.httpClient);}

и в заголовке экспортируемой функции:

exportedFunctionToGetData(httpClient : httpClient){...}

не забывайтеимпортировать httpClient в экспортированном файле ts Function:

import { HttpClient } from '@angular/common/http';

Надеюсь, это поможет.

0 голосов
/ 25 февраля 2019

HttpClient - это сервис, который по умолчанию предоставляется HttpClientModule.

, импортируйте его в свой AppModule

import { HttpClientModule } from '@angular/common/http'
....

@NgModule....
imports: [
   HttpClientModule
]
class AppModule {
}
...