Angular v8 到 v11 - 禁用常春藤的 entryComponents 问题
Posted
技术标签:
【中文标题】Angular v8 到 v11 - 禁用常春藤的 entryComponents 问题【英文标题】:Angular v8 to v11 - entryComponents issue with Ivy disabled 【发布时间】:2021-05-26 19:50:29 【问题描述】:从 v8 迁移到 v11 后,我的项目 entryComponents 遇到了问题。
目前我需要禁用 Ivy 构建,因为我需要坚持使用 PrimeNG v8 组件,并假设如果使用旧构建引擎运行 11,仍然需要 entryComponents 数组。但是每当我触发一个嵌入了 entryComponent 的对话框时,我都会得到:
Error: No component factory found for DynamicDialogComponent. Did you add it to @NgModule.entryComponents?
错误中的这个组件不是我的 entryComponents 之一,而是我用于对话框的 PrimeNG 组件。如果我打开常春藤,应用程序很好 - 但仅限于开发模式。如果是为 prod 构建的,它会抱怨 Prime 模块已经过时,所以我需要关闭它,直到我有时间重构。
有没有办法在 v11 中定义这些 entryComponents 并关闭 Ivy?
谢谢!
【问题讨论】:
【参考方案1】:好的,问题解决了,我很惭愧地说这是一个愚蠢的问题!不知何故(可能在最初的 Prime 迁移到 11 期间)DynamicDialogModule 已从所有模块中删除:
import DynamicDialogModule from 'primeng/dynamicdialog';
到处添加它,问题就消失了。我去拿我的外套.... :(
【讨论】:
以上是关于Angular v8 到 v11 - 禁用常春藤的 entryComponents 问题的主要内容,如果未能解决你的问题,请参考以下文章