没有Http Angular服务的提供程序 [英] No provider for Http Angular service
本文介绍了没有Http Angular服务的提供程序的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
@Injectable()
export class MyService {
constructor(private http: Http, @Inject('name') @Optional() public name?: string) {
}
在appModule内部,我正在尝试使用提供程序提供服务
inside appModule I'm trying to use provider for my service
MyService,
imports: [ // import Angular's modules
HttpModule,
....,
[
{ provide: 'username', useValue: 'default' }
],
const injector = ReflectiveInjector.resolveAndCreate(
[MyService,
{
provide: 'name', useValue: 'abc'
}
]);
但是我得到
错误错误:没有Http的提供程序!(MyService-> Http)
ERROR Error: No provider for Http! (MyService -> Http)
推荐答案
在您的app.module.ts中,同时导入两者:
In your app.module.ts import both:
import { HttpClientModule } from '@angular/common/http';
import { HttpModule } from '@angular/http';
然后将它们添加到您的导入中:
Then add them to your imports:
imports: [
...
HttpClientModule,
HttpModule
],
请记住将您的服务添加到提供商:
Remember to add your service to the providers:
providers: [
...
MyService
...
],
然后将以下内容添加到您的服务中:
Then add the following to your service:
import { HttpClient, HttpErrorResponse, HttpHeaders } from '@angular/common/http';
将其添加到您的构造器中,该构造器引用HttpClient而不是Http,如下所示:
the add it to your constructor referring to HttpClient instead of Http, like this:
constructor(private http: HttpClient)
希望有帮助.
这篇关于没有Http Angular服务的提供程序的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文