![](/img/trans.png)
[英]angular2 upgradeAdapter: get reference of ng1-directive from the UpgradeAdapter?
[英]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.