5

我有一个功能齐全的大型 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 错误消息:

未处理的 Promise 拒绝:[ng:btstrpd] 应用程序已使用此元素引导

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

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

4

0 回答 0