Angular 将http定义为DI会给出异常:Uncaught(承诺中):Error:DI Error

Angular 将http定义为DI会给出异常:Uncaught(承诺中):Error:DI Error,angular,dependency-injection,Angular,Dependency Injection,我试图使用私有http:http,它给了我 error\u handler.js:54异常:未捕获(承诺中):错误:DI错误 我正在组件中使用http 组件技术 import { Component, OnInit } from '@angular/core'; import { FormBuilder, FormControl, FormGroup } from '@angular/forms'; import { Http} from '@angular/http'; import {Obs

我试图使用
私有http:http
,它给了我
error\u handler.js:54异常:未捕获(承诺中):错误:DI错误

我正在组件中使用
http

组件技术

import { Component, OnInit } from '@angular/core';
import { FormBuilder, FormControl, FormGroup } from '@angular/forms';
import { Http} from '@angular/http';
import {Observable,Subscription} from 'rxjs/Rx';
import 'rxjs/add/operator/map';
import 'rxjs/add/operator/catch';
import { NouiFormatter } from 'ng2-nouislider';
import {NgbModule} from '@ng-bootstrap/ng-bootstrap';
@Component({
  selector: 'app-char-maker',
  templateUrl: './char-maker.component.html',
  styleUrls: ['./char-maker.component.css']
})
export class CharMakerComponent implements OnInit {
  constructor(
    private formBuilder: FormBuilder,
    private http: Http)
  { 
    var obj;
  }
  ngOnInit() {

}
}
如果我在构造函数中注释私有http:http,错误就会消失。
这里缺少什么?

您需要在导入下添加
HttpModule

@NgModule({
    imports: [
       HttpModule
]
用于角度v

您可以使用
HttpClientModule
。从

import {HttpClientModule} from '@angular/common/http';
import { HttpModule }    from '@angular/http'
并将其添加到导入中

 imports: [
 HttpClientModule,
  //... more code
  ]
对于

您只需使用
HttpModule
并从导入即可

import {HttpClientModule} from '@angular/common/http';
import { HttpModule }    from '@angular/http'

并将其添加到您的导入中

您导入了http模块吗?您一定忘了在app.module.ts文件中添加HttpModule。show your app.module.ts开始时很混乱,但稍后会很简单。首先必须导入模块(本例中为HttpModule),然后可以在组件中导入其类(本例中为Http)。此外,您可能只在主模块中添加Http作为提供程序,但不建议这样做(因为存在其他依赖项)。因此,在你的app.module.ts中,从“@angular/http”添加
import{HttpModule},然后将
HttpModule
添加到导入数组中。感谢大家的回答,我忘了导入
HttpModule
 imports: [
 HttpClientModule,
  //... more code
  ]