angularjs – Angular 2 DI,使用自定义Http
发布时间:2020-12-17 17:50:54 所属栏目:安全 来源:网络整理
导读:我有一个使用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 ht
我有一个使用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导入),一切都会中断.我收到错误“没有ConnectionBackend的提供者”.似乎HTTP_PROVIDERS刚刚停止作为提供者工作. >如何明确使用Http工作? 解决方法
使用自己的CustomHttp时,不需要使用HTTP_PROVIDERS,需要执行以下操作(如果使用RC5,则在app.module.ts中;如果使用RC4,则在main.ts中):
providers: [ ConnectionBackend,provide( Http,{ useFactory: ( backend: XHRBackend,defaultOptions: RequestOptions) => new CustomHttp(backend,defaultOptions),deps: [XHRBackend,RequestOptions] }),] 我有同样的问题,这为我解决了. 编辑: 如果您使用RC5,则不需要导入HTTP_PROVIDERS,因为您将导入HttpModule,但我不完全记得RC4中是否需要HTTP_PROVIDERS.你可能会需要它. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |