簡體   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