通過依賴注入
而不是直接呼叫 Angular 的引導程式碼,將引導程式碼包裝到函式中並匯出函式。此功能也可以接受引數。
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));
}
然後,在任何服務或元件中,我們可以注入遺留模型並獲得對它的訪問許可權。
import { Injectable } from "@angular/core";
@Injectable()
export class MyService {
constructor(@Inject("legacyModel") private legacyModel) {
console.log("Legacy data — ", legacyModel);
}
}
需要應用程式然後執行它。
require(["myAngular2App"], function(app) {
app.runAngular2App(legacyModel); // Input to your APP
});