In meiner Angular2-Anwendung muss ich eine Funktion von AuthenticationService und Bootstrap-Anwendung basierend auf den Ergebnissen dieses Aufrufs aufrufen. Das Problem ist, dass AuthenticationService Abhängigkeit von HTTP von @ angular/http hat und ich habe sehr wenig Ahnung, wie HTTP-Service manuell vor dem Aufrufen der Bootstrap-Funktion erstellt wird. Akzeptierte Antwort in dieser Frage angular2 bootstrap with data from ajax call(s) beschreibt, was ich perfekt erreichen möchte, aber leider wurde es zu einer früheren Version von Angular2 gegeben.Machen Sie AJAX Anfrage vor dem Bootstrapping Angular2 Anwendung
Ich habe versucht, http-Service auf diese Weise zu erstellen:
let injector = ReflectiveInjector.resolveAndCreate(HTTP_PROVIDERS)
let http = injector.get(Http);
aber ich habe null-Verweisausnahme in XsrfCookieStrategy oder so ähnlich. Ich glaube, es ist möglich, einige leere XsrfStrategy zu injizieren, aber es scheint eher ein Hack als eine gute Lösung zu sein. Die Frage ist also: Gibt es eine gute (offizielle) Möglichkeit, die Angular2-Anwendung mit einigen Abhängigkeiten zu starten, ähnlich wie oben beschrieben?
Sie eine Komponente Bootstrap könnte, die nur die Ajax-Aufruf tut und haben es Ihre reale Komponente Bootstrap ... Wirklich obwohl möchten Sie vielleicht nur Ihre Hauptkomponente so programmieren, dass es sich um eine Anzeige kann Geben Sie für Ihre Anwendung auch vor dem Anruf an und machen Sie den Anruf selbst. –
Jason, ich denke ich kann sehen, was du hier meinst, aber gibt es Beispiele oder Code, die die Idee von App auf diese Weise veranschaulichen? Der Code, den ich bei einem Bootstrap ausführen möchte, ist der wichtigste und einzige Einstiegspunkt, also sollte er auf jeder beliebigen Route (URL) ausgeführt werden, bevor eine Route zu einer Sache wird. Also frage ich mich, was ist der richtige Winkel dazu? Ich dachte, dass die Platzierung dieses Codes in der Datei bootstrap.ts eine gute Idee wäre. –
Ich habe noch keinen "besten Weg" gefunden, dies zu tun, ich habe irgendwie das gleiche Problem. Deshalb habe ich statt einer Antwort einen Kommentar gepostet, es könnte einen besseren Weg geben. Was Sie tun könnten, haben Sie eine "ParentComponent", die Sie Bootstrap und die erste API-Aufruf und nur haben Sie Ihre Hauptkomponente mit einem ngIf für, wenn der erste Aufruf abgeschlossen ist ' Hauptkomponente> ' –