Ich versuche, Daten über HTTP GET in einer Komponente zu laden, und dann muss ich diese Daten in Child-Komponente, die dynamisch geladen.Angular2 Dynamic Component Loader mit HTTP-Abfrage
Hier ist der Code:
ngOnInit(){
this.accountService.getPersonalInfo().subscribe(
response => {
this.Account = response.json();
this.dcl.loadIntoLocation(HeaderComponent, this.elementRef, 'header')
.then(compRef => {
compRef.instance.Account=this.Account;
}
);
}
);
}
In Kind Komponente (HeaderComponent) Ich kann this.Account
verwenden diese Daten zu erhalten. Gibt es einen besseren Weg, dies zu tun?
Aber dann wird es zwei ähnliche http-Abfragen - eine in der Elternkomponente und andere in dem Kind, richtig? Ich muss die Daten (this.Account) in beiden Komponenten verwenden –
Angulars DI verwaltet eine einzelne Instanz pro Anbieter. Die 'ParentCmp' ruft die Instanz des Providers auf. Für die 'HeaderCmp' wird DI nach oben schauen, bis es einen Provider für' AccountService' findet. Wenn Sie es nicht irgendwo dazwischen einfügen (nur anwendbar, wenn 'ParentCmp' und' HeaderCmp' nicht in einer direkten Eltern-Kind-Beziehung sind), dann wird DI den Provider von 'ParentCmp' finden und ihn auch an 'HeaderCmp' übergeben . Auf diese Weise erhalten beide Komponenten eine Referenz auf die gleiche 'AccountService'-Instanz. –