Ich habe eine Komponente, die einen Dienst verwendet. Die Komponente sieht ungefähr so aus:Wie kann ich in Angular 2 Provider zu einer Serviceklasse hinzufügen?
@Component({
moduleId: module.id,
selector: 'test',
providers: [HTTP_PROVIDERS, TestService]
})
export class TestComponent implements OnInit {
constructor(private _testService:TestService) {
}
Wie Sie sehen können, habe ich die HTTP_PROVIDERS
Anbieter in meiner Komponente hinzugefügt. Dies funktionierte, da der DI nun die Klassen http
kennt. Allerdings war es meine TestService
, die wirklich die Http
Klasse verwendete, nicht meine TestComponent
.
@Injectable()
export class TestService {
constructor(private _http:Http) {
}
Ich fühlte, dass da es der Dienst mit der Http
Klasse ist, sollte es derjenige mit den Anbietern in sich. Die TestComponent
würde nicht wissen, welche Anbieter TestService
benötigen würden.
Da die Service-Klasse nicht diese Komponente Dekorator hat, bin ich mir nicht sicher, wie ich tatsächlich Anbieter hinzufügen kann. Wie kann ich Provider zu einer Service
Klasse hinzufügen?
Vielleicht ist es noch sinnvoll 'HTTP_PROVIDERS' in der Bootstrap-Funktion zu setzen da es ziemlich oft benutzt wird. Was aber, wenn es andere Klassen gibt, die nur in diesem Dienst verwendet werden? Es wäre nicht sehr gut, es durch die Bootstrap-Funktion auf jeder Seite einzubinden. Wäre es besser, wenn der Anbieter nur in der Serviceklasse selbst enthalten ist? – Carven
Was bedeuten Sie, wenn der Anbieter nur in der Serviceklasse selbst enthalten ist? – micronyks
Ich meine, wenn es einen Anbieter gibt, der nur von einem bestimmten Dienst verwendet wird, wäre es mir möglich, diesen Anbieter nur innerhalb der Datei dieses Dienstes zu deklarieren? – Carven