Sto cercando di collegare un'app di base Angular2 che utilizza il servizio Http. (La maggior parte delle esercitazioni che ho visto fare questo con un Component
consuma il servizio Http
, che sembra sbagliato a meno che la filosofia di base dei controller sottili sia cambiata - ma questa è una domanda diversa)È possibile iniettare servizi in servizi solo tramite bootstrap?
Vorrei creare un servizio che utilizza il servizio Http
di Angular. Ma io non riesco a capire come iniettare il servizio Http
diverso da questo:
boot.ts:
import {bootstrap} from 'angular2/platform/browser';
import {AppComponent} from './app.component';
import {HTTP_PROVIDERS } from 'angular2/http';
bootstrap(AppComponent, [HTTP_PROVIDERS]);
myService.ts:
import {Injectable} from 'angular2/core';
import {Http} from 'angular2/http';
@Injectable()
export class aService{
constructor(http:Http){
}
/** do some stuff *//
}
Questo funziona, ma sembrare molto errato richiedere all'utente del servizio di conoscere le dipendenze del servizio ed essere obbligato a iniettarle nel processo di bootstrap. Sembra che ci dovrebbe essere un modo per consegnare direttamente un array providers
a un servizio nello stesso modo in cui è possibile un componente, ma non riesco a trovarlo. Mi manca qualcosa?
"A meno che la filosofia di base dei controller sottili non sia cambiata" - non è così. Per citare la [Panoramica dell'architettura] (https://angular.io/docs/ts/latest/guide/architecture.html): "Il lavoro di un componente è quello di abilitare l'esperienza utente e nient'altro: media tra la vista ... e la logica dell'applicazione ... Delega tutto ciò che non è banale ai servizi." –
Grazie @MarkRajcok - questo è il modo in cui penso che dovrebbe essere fatto. La mia confusione deriva dal fatto che la documentazione mostra che i controllori fanno molto di più. (Ad esempio: https://angular.io/docs/js/latest/api/http/Http-class.html) Se si suppone che i componenti siano veramente sottili, probabilmente non si occuperanno di http molto spesso, ma i documenti implicano che è normale. –
Beh, è improbabile che gli esempi nei documenti API seguano le best practice per la progettazione di un'app e ciò è probabilmente ragionevole. –