我很确定我错过了一些最基本的东西。
我开始使用ng2升级适配器在RC5之前开始将ng1应用程序移植到ng2。在此之前,当您声明组件直接在组件上使用的指令时,所有的内容都正确地连接在一起,并且是有意义的。
但是,现在我正在尝试将我的混合应用程序迁移到角锥2 Final,当涉及到依赖关系时,整个NgModule都与混合应用程序混淆了。
为了创建升级适配器,我需要将我想要在混合应用程序中使用的Ng2模块传递给它。这很好。但这意味着在我创建升级适配器之前必须完全定义Ng2模块,对吗?如果是这样,那么如何使用尚未创建的升级适配器来升级ng1组件以在ng2模块中使用(在创建适配器之前需要创建该组件)?
FYI,采用另一种方式是可以的--我有一个类型记录模块,它降低了我需要在ng2中使用的所有顶级ng1组件(在ui-路由器配置中)的等级,并且在升级适配器和包含我的组件的Ng2模块之后加载了这个类型记录模块。
那我错过了什么?如何利用升级适配器的upgradeNg1Component功能?
如果没有这个函数,它将迫使我从最外层的组件开始,并向内工作。这很好,只是有一些通用的组件到处使用,我不想先把它们转换成ng2。
发布于 2016-10-18 20:47:52
我偶然发现了同样的问题,并通过查看角的源代码找到了解决方案。诀窍是在创建forwardRef()时使用UpgradeAdapter
import {NgModule, forwardRef} from '@angular/core';
import {UpgradeAdapter} from '@angular/upgrade';
const adapter = new UpgradeAdapter(forwardRef(() => AppModule));
@NgModule({
declarations: [
adapter.upgradeNg1Component('my-component');
]
})
class AppModule {
}
// now call adapter.bootstrap()https://stackoverflow.com/questions/39911877
复制相似问题