我有一个功能齐全的大型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]);
});

我到处搜索了一些例子,混合应用程序的所有例子都只有一个AngularJS模块 . 我尝试了以下代码来尝试加载第二个AngularJS模块,但是我收到一个Angular错误说:

未处理的承诺拒绝:[ng:btstrpd] App已经使用此元素进行了自举

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

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