如何将提供商添加到 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) {
}
我觉得既然是使用Http
class的服务,就应该是自带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) {}
}
我有一个使用服务的组件。该组件看起来像这样:
@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) {
}
我觉得既然是使用Http
class的服务,就应该是自带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) {}
}