Ошибка статического инжектора: StaticInjectorError (AppModule) [GameService -> HttpClient] - PullRequest
0 голосов
/ 04 марта 2019

У меня проблема с библиотекой на Angular.Я сделал библиотеку, где я спрашиваю API с HttpClient, но есть проблема, когда я пытаюсь перейти на класс из этой библиотеки, GameService, я получаю: «Ошибка Static Injector: StaticInjectorError (AppModule) [GameService -> HttpClient]»,Когда я увидел это, я попытался импортировать HttpModule в свое приложение и добавить провайдеров HttpClient, но ничего не изменилось.Вот код моей библиотеки классов:

import { Injectable } from '@angular/core';
import { HttpHeaders, HttpClient } from '@angular/common/http';
import { Game } from './model/game';
import { Observable } from 'rxjs';
import { EndPointGetterService } from '../utilities/end-point-getter.service';

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

  private gameUrl = localStorage.getItem('endpoint') + '/Games';
  private headers: HttpHeaders;

  constructor(private http: HttpClient, private EPGetter: EndPointGetterService) {
    this.headers = new HttpHeaders({
      'Access-Control-Allow-Origin': 'http://localhost:4200',
      'Access-Control-Allow-Methods': 'GET,PUT,POST,DELETE,OPTIONS',
      'Access-Control-Allow-Headers': '*',
    });
  }
  getStateGame(groupName: string): Observable<number> {
    return this.http.get<number>(this.EPGetter.getEndPointUrl() + '/Games/' + groupName + '/State', { headers: this.headers });
  }

И внутри моего приложения у меня есть это в моем app.module.ts:

import { HttpClientModule, HttpClient } from '@angular/common/http';
import { GameService } from '@oneroomic/oneroomlibrary';

@NgModule({
  declarations: [
    AppComponent,
    NavComponent,
    LockscreenComponent,
    SettingsComponent
  ],
  imports: [
    HttpClientModule,
  ],
  providers: [
    HttpClient,
    GameService
  ],

, и вот как я внедряю GameService:

constructor(
  private snackBar: MatSnackBar,
  private gameService: GameService
  ) {}

Ответы [ 2 ]

0 голосов
/ 04 марта 2019

Хорошо, проблема в том, что я пытался установить локально эту библиотеку, но когда я писал в NPM, она работала.Очевидно, что при попытке установить локально возникает проблема.

0 голосов
/ 04 марта 2019

Попробуйте удалить GameService у провайдеров, поскольку у вас есть providedIn: 'root'.И HttpClient там тоже не нужен

...