Sök…


Introduktion

I det här inlägget kommer jag att visa hur man skickar extern data till Angular-appen innan appen startar. Denna externa data kan vara konfigurationsdata, äldre data, servern renderade etc.

Via beroende injektion

Istället för att anropa Angular's bootstrap-kod direkt, lindar du in bootstrap-koden till en funktion och exporterar funktionen. Denna funktion kan också acceptera parametrar.

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

Då kan vi, i alla tjänster eller komponenter, injicera "äldre modellen" och få tillgång till den.

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

Kräv appen och kör sedan den.

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


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow