首页 > 解决方案 > Angular 7 Dependency Inject HttpClient 到 Typescript 导出函数中

问题描述

嗨,我的角度能力对我想要实现的目标来说并不是那么好。

我有一个export function从数据库中获取数据的:

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

您将如何依赖注入 HttpClient 呢?

我不想使用Injector,因为这需要我将我的 http 请求包装到setTimeout()中,这在内部和Observable.subscribe().

我已经阅读了有关模块提供程序的信息,尤其是有关useFactory参数的信息,但我无法使其工作。请帮忙。

PS Stack 上几乎没有类似的问题,但它们都没有以应有的质量解决问题。

然后从 export const 内部调用此函数,如下所示:

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

标签: angulartypescriptdependency-injection

解决方案


在我的情况下,我只是将 httpClient 作为参数传递给导出的函数,例如

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

并在导出函数的标题中:

exportedFunctionToGetData(httpClient : httpClient){...}

不要忘记在导出的 Function ts 文件中导入 httpClient:

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

我希望它有所帮助。


推荐阅读