Angular使用ngb-pagination报NG8002无法绑定rotate等属性如何解决
问题原因
- 模块引入范围不正确:若使用
ngb-pagination的组件未声明在App根模块的declarations数组中,而是归属于某个子功能模块,仅在AppModule中引入NgbModule无法让子模块内的组件识别ng-bootstrap的组件与属性。 - ng-bootstrap版本不匹配:
- 6.0.0以下版本的ng-bootstrap中,
ngb-pagination本身未提供rotate、ellipses、boundaryLinks三个输入属性,直接使用会触发未识别报错。 - 若ng-bootstrap版本与当前项目的Angular核心版本不兼容,也会出现属性识别异常的问题。
- 6.0.0以下版本的ng-bootstrap中,
- 依赖文件损坏:本地
node_modules中的@ng-bootstrap/ng-bootstrap包文件存在缺失或损坏,导致编译时无法正确识别组件属性。
解决方案
- 调整模块引入逻辑:
找到使用分页组件所属的子模块,在对应module.ts文件中引入并注册NgbModule:import { NgbModule } from '@ng-bootstrap/ng-bootstrap'; @NgModule({ imports: [ // 原有其他引入项 NgbModule ], declarations: [/* 此处声明使用分页的组件 */] }) - 校验并适配版本:
打开项目根目录的package.json,查看@ng-bootstrap/ng-bootstrap的版本号:- 若版本低于6.0.0,需升级到和当前Angular版本匹配的ng-bootstrap版本,对应规则为Angular 14对应13.x版本、Angular 15对应14.x版本、Angular 16对应15.x版本、Angular 17对应16.x版本,以安装15.x版本为例,执行命令:
npm install @ng-bootstrap/ng-bootstrap@15 - 确保版本匹配后重新编译即可识别对应属性。
- 若版本低于6.0.0,需升级到和当前Angular版本匹配的ng-bootstrap版本,对应规则为Angular 14对应13.x版本、Angular 15对应14.x版本、Angular 16对应15.x版本、Angular 17对应16.x版本,以安装15.x版本为例,执行命令:
- 修复损坏依赖:
若模块引入和版本均无问题,删除项目根目录的node_modules文件夹、package-lock.json(或yarn.lock)文件,重新执行npm install安装依赖后再编译项目。
内容的提问来源于stack exchange,提问作者zohra makhloufi
相关产品推荐
相关产品推荐

