我有一个功能齐全的大型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)
任何帮助将不胜感激,谢谢!
我正在尝试找到一种将枚举名称转换为字符串的方法。如果我有下面的 Response 枚举,如何将“Response”转换或提取为字符串?我的一个函数将任何枚举作为输入,我需要名称,而不是执行其他代码的枚举类型。
enum Response
{
No = 0,
Yes = 1
}
Run Code Online (Sandbox Code Playgroud)