使用NgUpgrade在Angular Hybrid应用程序中加载多个AngularJS模块

jur*_*n w 5 angularjs ng-upgrade angular

我有一个功能齐全的大型AngularJS / Angular 4混合应用程序。自从项目开始以来,我只有一个AngularJS模块和一个Angular 4模块。随着时间的流逝,Angular 4部分开始越来越多,我决定开始使用NgModules更好地组织代码,并最终使用延迟加载。当应用程序处于混合模式时,我还想将AngularJS模块重构为几个模块,并从Angular 4模块中加载它们。

我目前正在引导应用程序,如下所示,并且工作正常。但是,假设我添加了一个名为Ng1AppModuleTwo的AngularJS模块,当我延迟加载一个名为Ng4AppModuleTwo的Angular 4模块时,我只想加载该模块。

import { platformBrowserDynamic } from '@angular/platform-browser-dynamic';

import { Ng1AppModule } from './app'
import { Ng4AppModule } from './app.module'

platformBrowserDynamic().bootstrapModule(Ng4AppModule).then(ref =>
{
    (<any>ref.instance).upgrade.bootstrap(document.body, [Ng1AppModule.name]);
});
Run Code Online (Sandbox Code Playgroud)

我到处都在搜索示例,所有混合应用程序示例都只有一个AngularJS模块。我尝试了以下代码来尝试加载第二个AngularJS模块,但出现了一个Angular错误:

未处理的承诺拒绝:[ng:btstrpd]应用已使用此元素自举

export class Ng4AppModuleTwo
{
    constructor(upgrade: UpgradeModule)
    {
        upgrade.bootstrap(document.body, [Ng1AppModuleTwo.name]);        
    }    
}
Run Code Online (Sandbox Code Playgroud)

任何帮助将不胜感激,谢谢!