[英]How angular router lazy loading dependent modules entryComponents works without issue but not the custom lazy loaded module
出於某些有效的原因,我試圖從我的angular 6應用中刪除路由(在這種情況下為懶惰)。 我正在使用NgModuleFactoryLoader
加載動態組件和模塊。 請參閱以下文章
https://netbasal.com/the-need-for-speed-lazy-load-non-routable-modules-in-angular-30c8f1c33093
所以我有一個懶惰的模塊ModuleA
,它依賴於mat-dialog
,它加載了另一個模塊FilterModule
提供的entryComponent的名為FilterComponent
的組件(已經添加到moduleA的導入數組中,而不是其他任何位置)。
//Ignore the syntax CompA { openDialog() { matDialog.open(FilterComponent) } } ModuleA { imports: [MatDialog, FilterModule], declaration: [CompA] } FilterModule { declaration: [FilterComponent], entryComponent: [FilterComponent] } FilterComponent { ... }
有了惰性路由,mat-dialog可以打開FilterComponent
而沒有任何問題。 但是,當我嘗試通過使用自定義方法成功加載模塊來打開對話框時,出現以下錯誤
找不到FilterComponent的組件工廠。 您是否將其添加到@ NgModule.entryComponents?
github中也有一個打開的錯誤,但是我很好奇惰性路由如何工作而沒有任何問題。
如果某個組件是模塊的一部分,而您想在其他模塊中使用該組件,
然后將組件放置在導出組件中,而不是輸入組件中。
FilterModule {
declaration: [FilterComponent],
exports: [FilterComponent]
}
現在,只要將此模塊導入任何其他模塊,該組件也可用於其他組件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.