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
]