Szukaj…


Wprowadzenie

W tym poście pokażę, jak przekazać dane zewnętrzne do aplikacji Angular przed uruchomieniem aplikacji. Te dane zewnętrzne mogą być danymi konfiguracji, starszymi danymi, renderowanym serwerem itp.

Przez wstrzyknięcie zależności

Zamiast bezpośrednio wywoływać kod ładujący Angulara, zawiń kod ładujący do funkcji i wyeksportuj funkcję. Ta funkcja może również akceptować parametry.

import { platformBrowserDynamic } from "@angular/platform-browser-dynamic";
import { AppModule } from "./src/app";
export function runAngular2App(legacyModel: any) {
       platformBrowserDynamic([
           { provide: "legacyModel", useValue: model }
       ]).bootstrapModule(AppModule)
       .then(success => console.log("Ng2 Bootstrap success"))
       .catch(err => console.error(err));
}

Następnie w dowolnych usługach lub komponentach możemy wprowadzić „starszy model” i uzyskać do niego dostęp.

import { Injectable } from "@angular/core";
@Injectable()
export class MyService {
   constructor(@Inject("legacyModel") private legacyModel) {
      console.log("Legacy data — ", legacyModel);
    }
 }

Wymagaj aplikacji, a następnie uruchom ją.

require(["myAngular2App"], function(app) {
   app.runAngular2App(legacyModel); // Input to your APP
});


Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow