加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

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中使用提供程序?

解决方法

使用自己的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.你可能会需要它.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读