Recherche…


Introduction

Dans cet article, je montrerai comment transmettre des données externes à l'application Angular avant le démarrage de l'application. Ces données externes peuvent être des données de configuration, des données héritées, un serveur rendu, etc.

Via l'injection de dépendance

Au lieu d'invoquer directement le code d'amorçage de l'angulaire, encapsulez le code d'amorçage dans une fonction et exportez la fonction. Cette fonction peut également accepter des paramètres.

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

Ensuite, dans tous les services ou composants, nous pouvons injecter le «modèle hérité» et y accéder.

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

Exiger l'application et ensuite l'exécuter.

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


Modified text is an extract of the original Stack Overflow Documentation
Sous licence CC BY-SA 3.0
Non affilié à Stack Overflow