我必须使用HTTP服务:角2 DI,使用自定义HTTP
import { Injectable } from '@angular/core';
import { Inject } from '@angular/core';
import { Http, Headers, Response } from '@angular/http';
@Injectable()
export class OrdersService {
constructor(@Inject(Http) private http:Http) {}
...
}
和使用它
import { Component } from '@angular/core';
import { FormBuilder, Validators } from '@angular/common';
import { HTTP_PROVIDERS } from '@angular/http';
import { Router} from '@angular/router';
import { OrdersService } from '../services/orders.service'
@Component({
selector: 'login',
templateUrl: './login.component.html',
providers: [
HTTP_PROVIDERS, //{ provide: Http, useClass: Http }
AuthService, AuthStore,
OrdersService
]
})
export class LoginComponent {
constructor(private authService: AuthService, private ordersService: OrdersService){}
....
}
这个工作的组成部分。我有一些注释掉的文字{提供:Http,useClass:Http}。我想在这里提供我自己的类,它扩展了Http,但仍具有相同的依赖关系。我在这里采取的第一步是明确使用Http。
只要我取消注释该文本(并添加一个http导入),一切都会中断。我收到错误"No provider for ConnectionBackend"
。看起来HTTP_PROVIDERS刚刚停止作为提供者工作。
- 我该如何明确使用Http工作?
- 如何使用我自己的CustomHttp并在HTTP_PROVIDERS中使用提供程序?
在Angular 2.1.1上,不需要'HTTP_PROVIDERS'。确保在自定义http类中使用'XHRBackend'作为构造函数参数。我在这里写了一个更全面的指南http://adonespitogo.com/articles/angular-2-extending-http-provider/ –