使用PrimeNG TableModule遇报错,求排查解决方案
PrimeNG TableModule 使用报错排查与解决
你已经按照PrimeNG Table模块的指引完成了以下操作:
- 导入TableModule:
import {TableModule} from 'primeng/table';
- 为表格准备了数据源

- 在模板中使用了表格组件

但仍然遇到了报错:
你尝试过运行npm install rxjs命令,但问题没有解决,同时附上了项目的package.json内容:
{ "name": "prime", "version": "0.0.0", "scripts": { "ng": "ng", "start": "ng serve", "build": "ng build", "test": "ng test", "lint": "ng lint", "e2e": "ng e2e" }, "private": true, "dependencies": { "@angular/animations": "^6.0.0", "@angular/common": "^6.0.0", "@angular/compiler": "^6.0.0", "@angular/core": "^6.0.0", "@angular/forms": "^6.0.0", "@angular/http": "^6.0.0", "@angular/platform-browser": "^6.0.0", "@angular/platform-browser-dynamic": "^6.0.0", "@angular/router": "^6.0.0", "core-js": "^2.5.4", "rxjs": "^6.0.0", "zone.js": "^0.8.26" }, "devDependencies": { "@angular/compiler-cli": "^6.0.0", "@angular-devkit/build-angular": "~0.6.1", "typescript": "~2.7.2", "@angular/cli": "~6.0.1", "@angular/language-service": "^6.0.0", "@types/jasmine": "~2.8.6", "@types/jasminewd2": "~2.0.3", "@types/node": "~8.9.4", "codelyzer": "~4.2.1", "jasmine-core": "~2.99.1", "jasmine-spec-reporter": "~4.2.1", "karma": "~1.7.1", "karma-chrome-launcher": "~2.2.0", "karma-coverage-istanbul-reporter": "~1.4.2", "karma-jasmine": "~1.1.1", "karma-jasmine-html-reporter": "^0.2.2", "protractor": "~5.3.0", "ts-node": "~5.0.1", "tslint": "~5.9.1" } }
问题根源分析
看你的报错信息和package.json,我发现核心问题是你还没有安装PrimeNG本身!你的依赖列表里完全没有primeng这个包,只装了rxjs但根本没装PrimeNG的核心库,所以导入primeng/table时自然会找不到模块。
另外,你的Angular版本是6.x,对应的PrimeNG版本需要严格匹配,不能装最新版(否则会有兼容性问题):Angular 6 对应 PrimeNG 7.x 版本,PrimeIcons(PrimeNG依赖的图标库)对应1.x版本。
解决方案
安装匹配版本的PrimeNG和PrimeIcons
打开终端,在项目根目录运行以下命令:npm install primeng@7.x primeicons@1.x --save确认模块导入配置正确
确保你在Angular模块(比如AppModule)里不仅导入了TableModule,还添加了PrimeNG依赖的BrowserAnimationsModule,并把它们都加入imports数组:import { NgModule } from '@angular/core'; import { BrowserModule } from '@angular/platform-browser'; import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; // PrimeNG必备动画模块 import { TableModule } from 'primeng/table'; import { AppComponent } from './app.component'; @NgModule({ declarations: [AppComponent], imports: [ BrowserModule, BrowserAnimationsModule, TableModule ], providers: [], bootstrap: [AppComponent] }) export class AppModule { }注:
BrowserAnimationsModule是PrimeNG多数组件(包括Table)的依赖,缺失它也会引发异常。重启开发服务器
安装完依赖后,务必重启ng serve,确保新安装的包被正确加载。
额外检查点
- 确认模板中
p-table的语法正确,比如value属性绑定的数据源名称和组件类中的变量名完全一致; - 你的rxjs版本6.x和Angular 6.x是匹配的,无需调整。
按照这些步骤操作后,应该就能解决你的报错问题了!
内容的提问来源于stack exchange,提问作者E.Meir
相关产品推荐
相关产品推荐

