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

Angular报错NG0200:DishService存在DI循环依赖,本地代码无法加载

问题根源

你的NG0200循环依赖报错,核心原因是DishService的构造函数错误注入了自身:

constructor(private dishService: DishService,private http: HttpClient,
@Inject('BaseURL') private BaseURL: any) {}

在类内部调用自身定义的方法不需要额外注入自身实例,自己注入自己会直接触发依赖注入的循环检测报错。

修复方案
  • 第一步:直接删除构造函数里的private dishService: DishService参数,修改后的构造函数代码如下:
constructor(private http: HttpClient,
@Inject('BaseURL') private BaseURL: any) {}
  • 第二步:修正代码里的地址变量冲突,你当前代码里用到的全局baseURL和注入的BaseURL重复,建议统一使用注入的BaseURL替换所有baseURL,避免后续接口请求地址错误,示例修改如下:
getDishes(): Observable<Dish[]> {
  return this.http.get<Dish[]>(this.BaseURL + 'dishes');
}

其余用到baseURL的getDish、getFeaturedDish方法都按上述逻辑调整即可。

  • 可选优化:给@Injectable装饰器加上providedIn: 'root'参数,符合Angular服务的最佳实践,无需再在对应模块的providers数组里手动声明DishService:
@Injectable({
  providedIn: 'root'
})
export class DishService {
  // 原有类逻辑保持不变
}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 09:15:03