升级Angular 16至17时出现NullInjectorError: No provider for _CdkConnectedOverlay错误
Angular v17升级后ng-zorro-antd组件加载失败(报错_CdkConnectedOverlay无提供者)的解决方法
- 升级ng-zorro-antd至兼容Angular 17的版本,执行命令:
ng update ng-zorro-antd - 确保@angular/cdk版本与Angular 17匹配,安装对应版本:
npm install @angular/cdk@^17.0.0 - 根据项目架构导入/提供Overlay相关依赖:
- 传统NgModule模式:在使用ng-zorro组件的模块中导入
OverlayModuleimport { OverlayModule } from '@angular/cdk/overlay'; @NgModule({ imports: [ // 其他必要模块 OverlayModule ] }) export class TargetModule { } - 独立组件模式(Angular 17推荐):在组件的providers数组中添加
provideOverlay()import { provideOverlay } from '@angular/cdk/overlay'; @Component({ selector: 'app-target', templateUrl: './target.component.html', providers: [provideOverlay()] }) export class TargetComponent { }
- 传统NgModule模式:在使用ng-zorro组件的模块中导入
- 确认根层级NgZorro配置正确:
- NgModule模式:根模块导入
NzRootModule - 独立组件模式:bootstrap时添加
provideNzRoot()到providers数组
- NgModule模式:根模块导入
内容的提问来源于stack exchange,提问作者Tony Brasunas
相关产品推荐
相关产品推荐

