You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

JHipster AngularX应用添加实体报错:无QuestionService等服务提供者

解决JHipster AngularX应用中实体服务注入错误的问题

看起来你遇到的是Angular依赖注入的典型问题——虽然你手动在AppModule里添加了服务提供者,但JHipster的模块化结构其实已经帮你处理了这些配置,手动添加反而导致了冲突。下面是具体的解决方案和原因分析:

第一步:移除AppModule中重复的服务提供者

打开你的app.module.ts,把providers数组里的所有实体服务(包括QuestionService、QuizService、UserProfileService等)全部移除。JHipster生成的ConductionTestsEntityModule已经包含了所有实体服务的正确配置,手动添加会让Angular的注入器陷入混乱,无法找到正确的服务实例。

修改后的providers应该是这样:

providers: [
    ProfileService,
    customHttpProvider(),
    PaginationConfig,
    UserRouteAccessService
],

第二步:验证EntityModule的配置

检查src/main/webapp/app/entities/entity.module.ts,确认它已经导入了QuizModule和QuestionModule。JHipster通过JDL生成代码时应该自动添加了这些导入,不过还是确认一下:

import { NgModule } from '@angular/core';
import { QuizModule } from './quiz/quiz.module';
import { QuestionModule } from './question/question.module';
// 其他实体模块的导入...

@NgModule({
    imports: [
        // 其他实体模块
        QuizModule,
        QuestionModule
    ]
})
export class ConductionTestsEntityModule {}

第三步:确认实体模块的服务配置

再检查每个实体的子模块(比如quiz.module.ts和question.module.ts),确保它们的providers数组里已经包含了对应的服务:
比如quiz.module.ts:

@NgModule({
    imports: [
        // 必要的Angular模块导入
    ],
    declarations: [
        QuizComponent,
        QuizDetailComponent,
        QuizDialogComponent,
        QuizDeleteDialogComponent
    ],
    entryComponents: [
        QuizDialogComponent,
        QuizDeleteDialogComponent
    ],
    providers: [
        QuizService
    ]
})
export class QuizModule {}

question.module.ts同理,必须包含QuestionService在providers里。

为什么会出现这个问题?

JHipster的AngularX项目采用了模块化的架构设计,EntityModule作为所有实体相关功能的统一入口,每个实体的子模块(比如QuizModule)负责管理自己的组件、服务和路由。当你在AppModule里重复注册这些服务时,Angular的依赖注入系统会出现冲突,导致无法正确解析服务实例,最终抛出NullInjectorError。

如果以上步骤都无法解决问题,你可以尝试重新生成这两个实体:

jhipster entity Quiz
jhipster entity Question

这会确保所有相关文件(包括模块、服务、组件)都被正确生成,避免手动修改导致的配置缺失。

内容的提问来源于stack exchange,提问作者Gozus19

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:08:26