Buscar..


Introducción

En esta publicación, demostraré cómo pasar datos externos a la aplicación Angular antes de que la aplicación se inicie. Estos datos externos pueden ser datos de configuración, datos heredados, servidores renderizados, etc.

Vía de inyección de dependencia

En lugar de invocar directamente el código de inicio del Angular, envuelva el código de inicio en una función y exporte la función. Esta función también puede aceptar parámetros.

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

Luego, en cualquier servicio o componente podemos inyectar el "modelo heredado" y obtener acceso a él.

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

Requerir la aplicación y luego ejecutarlo.

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


Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow