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

时间:2017-10-19 00:50:40

标签: angularjs angular ng-upgrade

我有一个功能齐全的大型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]应用已经启动了   使用此元素

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

非常感谢任何帮助,谢谢!

0 个答案:

没有答案