Heim >Web-Frontend >js-Tutorial >Wie kann ich eine Angular 2-App mit Backend-Parametern booten?
Bei der Initialisierung einer Angular 2-Anwendung ist die Bereitstellung der notwendigen Parameter für die Konfiguration von entscheidender Bedeutung. In Szenarien, in denen diese Parameter im Backend generiert werden, müssen sie während des Bootstrapping-Prozesses übergeben werden.
Um HTTP-Header für alle Anfragen festzulegen, können Sie die von Angular verwenden Abhängigkeitsinjektionsmechanismus. In main.ts kann der folgende Ansatz verwendet werden:
import { bootstrap } from '@angular/platform-browser-dynamic'; import { AppComponent } from './app.component.ts'; const headers = ... // Retrieve headers from the backend bootstrap(AppComponent, [{ provide: 'headers', useValue: headers }]);
In Ihre Komponenten oder Dienste können Sie diese Header einfügen, indem Sie:
class SomeComponentOrService { constructor(@Inject('headers') private headers) { } }
Alternativ können Sie eine benutzerdefinierte Unterklasse von BaseRequestOptions bereitstellen, die das Notwendige kapselt Überschriften:
class MyRequestOptions extends BaseRequestOptions { constructor (private headers) { super(); } } const values = ... // Get headers from the backend const headers = new MyRequestOptions(values); bootstrap(AppComponent, [{ provide: BaseRequestOptions, useValue: headers }]);
Zyklische Abhängigkeiten:
Das Einfügen notwendiger Abhängigkeiten kann manchmal zu zyklischen Abhängigkeiten führen. Um dieses Problem zu beheben, können Sie den Injector injizieren und die Abhängigkeiten über ihn abrufen:
constructor(injector: Injector) { this.myDep = injector.get(MyDependency); }
Lazy Initialization with APP_INITIALIZER:
Für Szenarien, in denen Ihre Abhängigkeiten eine zusätzliche Initialisierung erfordern Bevor die Anwendung startet, können Sie den APP_INITIALIZER-Anbieter nutzen. Es verzögert die Initialisierung und das Bootstrapping, bis das von der Initialisierungsfunktion zurückgegebene Versprechen aufgelöst wird.
Verwandte Ansätze:
Ein alternativer Ansatz besteht darin, das CONFIG-Token zur Übergabe von Konfigurationsdaten zu verwenden beim Bootstrapping. Diese Methode ist jedoch nicht so flexibel wie die oben beschriebenen Methoden, da die Konfiguration im Code der Anwendung vorhanden sein muss.
Das obige ist der detaillierte Inhalt vonWie kann ich eine Angular 2-App mit Backend-Parametern booten?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!