如何将提供商添加到 Angular 2 中的服务 class?

How can I add providers to a Service class in Angular 2?

我有一个使用服务的组件。该组件看起来像这样:

@Component({
    moduleId: module.id,
    selector: 'test',
    providers: [HTTP_PROVIDERS, TestService]
})
export class TestComponent implements OnInit {

    constructor(private _testService:TestService) {
    }

如您所见,我在组件中添加了 HTTP_PROVIDERS 提供程序。这是有效的,因为 DI 现在知道 http classes。然而,真正使用 Http class 的是我的 TestService,而不是我的 TestComponent.

@Injectable()
export class TestService {

    constructor(private _http:Http) {
    }

我觉得既然是使用Httpclass的服务,就应该是自带provider的。 TestComponent 不知道 TestService 需要什么供应商。

由于服务 class 没有那个组件装饰器,我不确定如何实际向它添加提供程序。如何将提供商添加到 Service class?

你能做的是,

HTTP_PROVIDERS注入bootstrap function,

import {HTTP_PROVIDERS} from '@angular/http';
bootstrap(AppComponent,[HTTP_PROVIDERS]);

在您的服务中,

import {Http} from '@angular/http';

@Injectable()
export class TestService {
    constructor(private _http:Http) {}
}