繁体   English   中英

如何使用angular 2的upgradeAdapter.upgradeNg1Component?

[英]How to use angular 2's upgradeAdapter.upgradeNg1Component?

我很确定我在这里缺少一些基本的东西。

我开始在RC5之前使用ng2升级适配器开始将ng1应用程序移植到ng2。 之前,当您声明组件直接在组件上使用的指令时,所有内容都正确连接并且有意义。

但是,现在我正在尝试将我的混合应用程序迁移到Angular 2 Final,并且当涉及到依赖项时,整个NgModule的东西混淆了混合应用程序。

为了创建升级适配器,我需要将它想要在混合应用程序中使用的Ng2模块传递给它。 没关系。 但这意味着在创建升级适配器之前必须完全定义Ng2模块,对吧? 如果这是真的,那么我如何使用尚未创建的升级适配器升级ng1组件以在ng2模块中使用(需要在创建适配器之前创建)?

仅供参考,其他方式很好 - 我有一个打字稿模块,可以降级我需要在ng1中使用的所有顶级ng2组件(在ui-router配置中),并且在升级适配器之后加载打字稿模块和包含我的组件的Ng2模块降级。

那么,我错过了什么? 如何使用升级适配器的upgradeNg1Component功能?

没有这个功能,它迫使我从最外面的组件开始,向内工作。 这样可以正常工作,除了有一些常用的组件可以使用,我宁愿不必先将它们转换为ng2。

我偶然发现了同样的问题,并通过查看Angular的源代码找到了解决方案。 诀窍是使用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()

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM