Angular 15升级至16后AppModule出现组件编译错误,移至SharedModule恢复正常
Angular 16升级后NG8002错误的解决办法
显式导入表单模块
Angular 16收紧了模块依赖的校验规则,若AppModule内的组件使用ngModel,必须在AppModule中直接导入FormsModule或ReactiveFormsModule。Angular 15允许间接通过SharedModule导入的依赖生效,但16要求使用指令的模块必须显式声明依赖。校验SharedModule的导出逻辑
组件移至SharedModule后恢复正常,说明SharedModule已正确导入表单模块并导出目标组件。要让AppModule内的组件正常运行,可二选一:- 在AppModule中直接导入
FormsModule/ReactiveFormsModule; - 确保SharedModule导出
FormsModule,再让AppModule导入SharedModule。
- 在AppModule中直接导入
排查schemas配置问题
NO_ERRORS_SCHEMA和CUSTOM_ELEMENTS_SCHEMA必须添加到组件所属的AppModule的@NgModule配置中,而非组件自身装饰器。若ui-switch是原生自定义元素,除了添加CUSTOM_ELEMENTS_SCHEMA,还需在main.ts中完成自定义元素的注册。检查组件声明冲突
确认AppModule内的组件未被其他模块重复声明,Angular 16强化了模块声明隔离机制,跨模块引用未导出组件或重复声明会引发属性绑定类错误。
内容的提问来源于stack exchange,提问作者Priya Ganesan
相关产品推荐
相关产品推荐

