首页 > 解决方案 > ERROR 错误:NG0200:DI 中检测到 DishService 的循环依赖

问题描述

import { Inject, Injectable } from '@angular/core';
import { Dish } from '../shared/dish';
import { DISHES } from '../shared/dishes';
import { Observable, of } from 'rxjs';
import { catchError, map } from 'rxjs/operators';
import { HttpClient, HttpHeaders } from '@angular/common/http';
import { baseURL } from '../shared/baseurl';

@Injectable()
export class DishService {

  getDishes(): Observable<Dish[]> {
    return this.http.get<Dish[]>(baseURL + 'dishes');
  }

  getDish(id: string): Observable<Dish> {
    return this.http.get<Dish>(baseURL + 'dishes/' + id);
  }

  getFeaturedDish(): Observable<Dish> {
    return this.http.get<Dish[]>(baseURL + 'dishes?featured=true').pipe(map(dishes => dishes[0]));
  }

  getDishIds(): Observable<number[] | any> {
    return this.getDishes().pipe(map(dishes => dishes.map(dish => dish.id)));
  }
    constructor(private dishService: DishService,private http: HttpClient,
    @Inject('BaseURL') private BaseURL: any) {}
  
}

我无法在我的本地主机上加载我的代码 我无法在我的本地主机上加载我的代码我正在使用 Coursera 学习角度。这段代码是我课程的练习

标签: angular

解决方案


从. private dishService: DishService_ constructor因为它取决于导致无限循环的自身。

@Injectable()
export class DishService {

  ...

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

参考

NG0200:在实例化提供程序时检测到 DI 中的循环依赖 - 调试错误


推荐阅读