我必須使用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/ –