Angular 7依赖关系将HttpClient注入Typescript导出函数

时间:2019-02-25 07:15:27

标签: angular typescript dependency-injection

嗨,我的棱角分明的能力对我想要达到的目标并不是很好。

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

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

您如何将HttpClient注入其中?

我不想使用Injector,因为这将需要我将http请求包装到setTimeout()中,而Observable.subscribe()在内部和useFactory中都无法正常工作。

我已经阅读了有关模块提供程序的信息,特别是有关export const initialState: BoardState = { board: BoardData(http), draggingBoard: null, cardInFlight: null, listInFlight: null, nextId: 1000, spilledCard: false, isCopying: false, shouldCopy: false }; 参数的信息,但是我无法使其工作。请帮忙。

P.S。在Stack BUT上几乎没有类似的问题,它们都不能以适当的质量解决问题。

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

 Class User
   has_many :articles
 end

 Class Article
   belongs_to :user
 end


 class ArticlesController
   def create
     @article = current_user.articles.new(article_params)
     @article.save
   end

  def article_params
    params.require(:article).permit(:field1, :field2)
  end

 end

2 个答案:

答案 0 :(得分:0)

就我而言,我只是将httpClient作为参数传递给导出的函数, 例如

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

以及导出函数的标题中:

exportedFunctionToGetData(httpClient : httpClient){...}

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

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

希望对您有帮助。

答案 1 :(得分:-2)

HttpClient是HttpClientModule默认提供的服务。

将其导入您的AppModule

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

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