没有Http Angular服务的提供程序 [英] No provider for Http Angular service

查看:60
本文介绍了没有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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆