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

使用Injector获取StudentService时触发NullInjectorError:无提供者报错

解决Angular中NullInjectorError: No provider for StudentService!的问题

这个错误的核心原因很明确:Angular的依赖注入系统找不到StudentService的提供者——你定义了服务,但没告诉Angular该如何创建和管理这个服务的实例。

下面是两种最常用的解决方法:

方法1:在服务类上直接配置根级提供者(推荐)

修改你的StudentService,在@Injectable装饰器中添加providedIn: 'root'配置,这样Angular会自动将这个服务注册为根注入器的提供者,整个应用都能共享同一个实例:

@Injectable({
  providedIn: 'root' // 新增这一行配置
}) 
export class StudentService { 
  constructor() { } 
  getDataFormStudentService() { 
    return "Hi, I'm Mix"; 
  } 
}

方法2:在模块的providers数组中注册服务

如果你不想让服务成为全局可用的,或者需要更精细的控制,可以在AppModule(或者你想使用服务的其他模块)的providers数组中手动注册StudentService:

打开app.module.ts,修改如下:

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import { StudentService } from './student.service'; // 确保正确导入服务

@NgModule({
  declarations: [
    AppComponent
  ],
  imports: [
    BrowserModule
  ],
  providers: [StudentService], // 将服务添加到providers数组中
  bootstrap: [AppComponent]
})
export class AppModule { }

完成上面任意一种配置后,再运行你的项目,Injector.get(StudentService)就能正确获取到服务实例,NullInjectorError就会消失啦。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.08 10:37:51