使用自定义ngModule创建表格时出现NullInjectorError缺少_ViewRepeater提供者
Angular自定义表格模块注入错误解决方案
1. 报错含义说明
这是Angular依赖注入体系抛出的标准错误,含义是:你当前组件所属的ProjectsModule注入器链中,找不到名为_ViewRepeater的注入令牌对应的服务提供方。_ViewRepeater是Angular CDK表格组件的内部底层依赖,用来处理表格行、列等重复视图的动态渲染逻辑,你的自定义cng-table指令是基于CDK表格封装的,因此运行时必须依赖这个服务。
2. 可能遗漏的配置排查项
既然该模块在其他场景可以正常运行,优先排查以下配置问题:
- 检查当前
ProjectsModule是否导入了动画模块:基于CDK封装的组件绝大多数都依赖BrowserAnimationsModule或者NoopAnimationsModule,其他正常使用的场景应该是所属模块已经提前导入了该依赖,当前模块漏加 - 检查模块导入作用域:如果
ProjectsModule是懒加载模块,你需要在该模块自己的imports数组中单独引入自定义表格模块,只在根模块AppModule导入对懒加载模块不生效 - 检查共享模块配置:如果你的自定义表格模块是放在公共共享模块中统一导出的,确认
ProjectsModule已经正确导入了该公共共享模块 - 检查版本兼容性:确认当前项目的Angular核心版本、CDK版本和自定义表格模块依赖的版本范围匹配,避免跨版本依赖冲突导致底层依赖无法正常注入
- 如果你使用的是Angular14+的standalone组件,确认
cng-table所有依赖的CDK模块(比如CdkTableModule)已经在当前组件的imports数组或者所属模块的导入列表中引入
内容的提问来源于stack exchange,提问作者Arpita
相关产品推荐
相关产品推荐

