Ricerca…


introduzione

In questo post illustrerò come passare dati esterni all'app Angular prima dell'avvio dell'app. Questi dati esterni potrebbero essere dati di configurazione, dati legacy, server resi, ecc.

Via Iniezione di dipendenza

Invece di richiamare direttamente il codice bootstrap di Angular, avvolgere il codice bootstrap in una funzione ed esportare la funzione. Questa funzione può anche accettare parametri.

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));
}

Quindi, in qualsiasi servizio o componente, possiamo iniettare il "modello legacy" e accedervi.

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

Richiedi l'app e poi eseguila.

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


Modified text is an extract of the original Stack Overflow Documentation
Autorizzato sotto CC BY-SA 3.0
Non affiliato con Stack Overflow