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

添加含Service的构造函数后Angular应用显示空白页求助

问题原因及解决办法

你的SharedInfoService仅添加了@Injectable()装饰器,但未配置服务的注入范围,Angular无法解析该服务的依赖关系,导致组件注入服务时抛出错误,最终页面无法正常渲染(显示空白)。

解决方法

方法一:使用providedIn配置根注入器(推荐)

修改shared-info.service.ts,在@Injectable装饰器中添加providedIn: 'root',让服务成为根注入器的单例:

import { Injectable } from '@angular/core';

@Injectable({
  providedIn: 'root'
})
export class SharedInfoService {
  constructor() {}

  public name = 'Darth Vader';
}

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

打开app.module.ts,将SharedInfoService添加到模块的providers数组中:

import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { AppComponent } from './app.component';
import { SharedInfoService } from './shared-info.service';

@NgModule({
  declarations: [AppComponent],
  imports: [BrowserModule],
  providers: [SharedInfoService],
  bootstrap: [AppComponent]
})
export class AppModule {}

第一种方式是Angular官方推荐的做法,它会自动进行树摇优化,避免未使用的服务被打包;第二种是传统的模块级注册方式,适用于需要在特定模块范围内提供服务的场景。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.24 12:24:19