2016-05-05 8 views
2

Wir arbeiten an unserem Angular 2-Projekt und suchen nach einer Möglichkeit, alle Injektionen zu unseren Diensten mit gespotteten Versionen mit einem einzigen Toggle zu tauschen. Wir wollen dies tun, damit wir uns gegebenenfalls vom Backend lösen können.Global umschalten zwischen der Verwendung von mokierten Diensten in Angular 2

Wir wollen mit fest codierten Werte Dummy DTO in der Lage sein zu verwenden, indem nur eine globale Eigenschaft (mock = true) Ändern

Ist es möglich, den DI-Container von Angular 2 so zu konfigurieren, dass durch eine Veränderung globales Eigentum, injizierte Dienste werden durch gespottete ersetzt?

Antwort

1

Erstellen und stellen Sie einfach Ihre benutzerdefinierte Implementierung von XHRBackend bereit, die je nach Einstellung eines globalen Service an XHRBackend oder MockBackend weitergeleitet wird.

+1

Großartig, unkompliziert und einfach zu implementieren. Ich mag! – Andre

+0

Würden Sie so freundlich sein und eine Dummy-Syntax bereitstellen, die mit @NgModule funktioniert? – hendrix

+0

Etwas wie '@NgModule ({imports: [HttpModule], providers: [{bereitstellen: XHRBackend, useClass: MyCustomHttpBackend}]})' oder 'TestBed.configureTestingModule (imports: [HttpModule], providers: [{provide: XHRBackend, useClass: MyCustomHttpBackend}]) ' –