Poi*_*shi 5 angular angular-httpclient
我在 app.module.ts 中实例化 MyService,并在我的代码中提供它。
但是,我希望 MyService 使用 httpClient,并且我无法以角度惯用方式实例化 httpClient 以作为参数传递给 MyService。我不确定在 MyService 中访问 httpClient 的正确方法是什么。
我考虑过直接实例化 httpClient ,然后将其作为参数传递给我的服务。然而,这似乎造成了循环依赖。我也尝试过弄乱注入器,但显然 Angular 团队特别建议不要这样做。我强烈地觉得我错过了一些简单的东西。
应用程序模块.ts
imports: [
...
httpClientModule
...
],
function MainServiceFactory() {
return new MyService();
}
...
providers: [{
provide: MyService,
useFactory: MainServiceFactory
}],
...
Run Code Online (Sandbox Code Playgroud)
MyService.ts
...
constructor(private http : HttpClient) {
...
}
Run Code Online (Sandbox Code Playgroud)
如果没有实例化并作为 httpClient 的参数传递:我自然会收到“app.module.ts 中的错误,预期 1 个参数”!通过实例化,我打破了角度建议。
编辑: 我忽略了指定我确实导入了 httpClientModule
正如大家所说,你必须导入HttpClientModule
看看你的代码,我认为你正在尝试处理angular's dependency injection:
我在 stackblitz 中做了一个例子:
https://stackblitz.com/edit/angular-yqvlv7?file=src%2Fapp%2Fapp.module.ts
我定义一个抽象类来表现得像一个接口,然后my.service实现这个接口。
在 app.module 内部,我提供了使用my-service类的“接口”。毕竟,您可以在组件中注入“接口”(在此链接中,hello.component.ts)
HttpClient只注入进去,my-service完全没有问题。
我希望它能帮助您更好地理解它。
| 归档时间: |
|
| 查看次数: |
8569 次 |
| 最近记录: |