Angular 16 独立依赖注入问题

问题描述 投票:0回答:1

以下是我包含服务的独立 api 调用:

import { Injectable} from '@angular/core';
import { ProductEndPoints } from '../../constants/apiConstants/product-endpoints';
import { HttpClient} from '@angular/common/http';
import { Observable } from 'rxjs';
import { environment } from 'src/environments/environment.development';
import { product } from '../../models/product.types';
@Injectable({
  providedIn: 'root',
})
export class ProductService {

  constructor(private http:HttpClient) { }

  getAllProducts():Observable<product[]>{
     return this.http.get<product[]>(environment.apiUrl+`${ProductEndPoints.getAllProduct}`)
  }

  getProductDetailById(id:string):Observable<product>{
    return this.http.get<product>(environment.apiUrl+`${ProductEndPoints}/${id}`)
  }
}

我还将此服务添加到目标组件的提供者数组中。

我将其注入独立组件时遇到的错误是:

src_app_pages_Product_product-routing_ts.js:2 ERROR Error: Uncaught (in promise): NullInjectorError: R3InjectorError(Standalone[ProductListComponent])[HttpClient -> HttpClient -> HttpClient -> HttpClient]: 
  NullInjectorError: No provider for HttpClient!
NullInjectorError: R3InjectorError(Standalone[ProductListComponent])[HttpClient -> HttpClient -> HttpClient -> HttpClient]: 
  NullInjectorError: No provider for HttpClient!
    at NullInjector.get (core.mjs:8890:27)
    at R3Injector.get (core.mjs:9334:33)
    at R3Injector.get (core.mjs:9334:33)
    at R3Injector.get (core.mjs:9334:33)
    at R3Injector.get (core.mjs:9334:33)
    at ChainedInjector.get (core.mjs:14018:36)
    at lookupTokenUsingModuleInjector (core.mjs:4608:39)
    at getOrCreateInjectable (core.mjs:4656:12)
    at ɵɵdirectiveInject (core.mjs:11801:19)
    at Module.ɵɵinject (core.mjs:848:60)
    at resolvePromise (zone.js:1193:31)
    at resolvePromise (zone.js:1147:17)
    at zone.js:1260:17
    at _ZoneDelegate.invokeTask (zone.js:402:31)
    at core.mjs:10757:55
    at AsyncStackTaggingZoneSpec.onInvokeTask (core.mjs:10757:36)
    at _ZoneDelegate.invokeTask (zone.js:401:60)
    at Object.onInvokeTask (core.mjs:11070:33)
    at _ZoneDelegate.invokeTask (zone.js:401:60)
    at Zone.runTask (zone.js:173:47)
angular dependency-injection angular16
1个回答
0
投票

添加

HttpClientModule

在 AppModule 中导入数组

© www.soinside.com 2019 - 2024. All rights reserved.