2016-07-28 39 views
1

Ich frage mich, ob es möglich ist, angular2 in-memory-web-api nur für einen Teil einer Anwendung zu konfigurieren. Ich möchte externe Endpunkte für fertige Komponenten erreichen und in-memory-web-api für Komponenten in der Entwicklungsphase verwenden.angular2 in-memory-web-api nur für einen Teil einer Anwendung

Ich habe versucht, dies in den Folowing zwei Möglichkeiten zu tun:

1 - die Daten in dem Haupt-Laden und die XHRBackend in den Komponenten zu ändern, die ich möchte in-Speicher-Endpunkte erreichen;

main.ts

bootstrap(AppComponent, [ 
    ... 
    { provide: SEED_DATA, useClass: InMemoryDataService } 
]); 

inDevelopmentStage.service.ts

@Component({ 
    providers: [ 
     { provide: XHRBackend, useClass: InMemoryBackendService } 
    ] 
}) 

2 - Laden der Daten und die XHRBackend in den Komponenten zu ändern, die ich will Endpunkte im Speicher erreichen;

inDevelopmentStage.service.ts

@Component({ 
    providers: [ 
     { provide: XHRBackend, useClass: InMemoryBackendService }, // in-mem server 
     { provide: SEED_DATA, useClass: InMemoryDataService }  // in-mem server data 
    ] 
}) 

Gibt es eine Möglichkeit, dass ich dieses Ziel zu erreichen?

Danke für Ihre Hilfe!

Antwort

0

Wie von filipesilvahere gezeigt, sollte der zweite Weg funktionieren.

" Oh sicher, Sie können dies auf jeden Fall tun Jede Komponente hat einen eigenen Injektor ist, das ist das, was Anbieter für sich und alle Komponenten in diesem Teilbaum

Ihr zweites Beispiel arbeitete löst haben sollte:..

@Component({ 
    providers: [ 
     { provide: XHRBackend, useClass: InMemoryBackendService }, // in-mem server 
     { provide: SEED_DATA, useClass: InMemoryDataService }  // in-mem server data 
    ] 
}) 

Wie für diese Komponente und es ist Teilstruktur ist XHRBackend InMemoryBackendService anstelle des Service von HTTP_PROVIDERS.

Denken sie daran, dass es gilt auch für alle anderen Komponenten, dass Teilbaum jedoch. Vielleicht ist das falsch gelaufen? "

Danke Filipe!