Некоторая странная ошибка, связанная с HttpClient, HttpClientModule и HttpHeaders - PullRequest
0 голосов
/ 29 июня 2018

Я обновил свое угловое приложение с 5.1.1 до 6 и столкнулся с некоторыми проблемами с HttpClient и всеми. Я получаю сообщение об ошибке после запуска приложения. Я искал эту проблему в Google, но не нашел идеального решения. Может кто-нибудь сказать мне, каким должен быть правильный способ сделать это?

Ошибка:

AppComponent_Host.ngfactory.js? [sm]:1 ERROR Error: StaticInjectorError(AppModule)[UserStoreApiService -> HttpClientModule]: 
  StaticInjectorError(Platform: core)[UserStoreApiService -> HttpClientModule]: 
    NullInjectorError: No provider for HttpClientModule!
    at NullInjector../node_modules/@angular/core/fesm5/core.js.NullInjector.get (vendor.js:55249)

component.ts

import { Injectable } from '@angular/core';
import { HttpClient, HttpClientModule, HttpHeaders } from '@angular/common/http';
import { AuthHttp } from 'angular2-jwt';

import { ConfigService } from '../../config.service';

@Injectable()
export class UserStoreApiService {
  userStoreUrl: string;

  constructor(private http: AuthHttp,
              private _http: HttpClient,
              private config: ConfigService) {}

  private setUrl() {
    if (this.userStoreUrl === undefined) {
      this.userStoreUrl = this.config.get('userstore');
    }
  }

  public getUrl(apiUrl: string, headers: any) {
    this.setUrl();
    return this.http.get(this.userStoreUrl + apiUrl, headers);
  }

  public postUrl(apiUrl: string, data: string, header: any) {
    this.setUrl();
    let headers = new Headers();
    headers.append('authorization', 'Bearer ' + localStorage.getItem('access_token'));
    headers.append('Access-Control-Allow-Origin', '*');
    return this.http.post(this.userStoreUrl + apiUrl, data, { headers });
  }

  public putUrlWithFormData(apiUrl: string, data: any) {
    this.setUrl();
    let headers = new Headers();
    headers.append('authorization', 'Bearer ' + localStorage.getItem('access_token'));
    headers.append('Access-Control-Allow-Origin', '*');
    return this._http.put(this.userStoreUrl + apiUrl, data, {headers});
  }

  public putUrl(apiUrl: string, data: string, headers: any) {
    this.setUrl();
    return this.http.put(this.userStoreUrl + apiUrl, data, headers);
  }

  public deleteUrl(apiUrl: string, headers: any) {
    this.setUrl();
    return this.http.delete(this.userStoreUrl + apiUrl, headers);
  }

  public getRoot() {
    this.setUrl();
    return this.userStoreUrl;
  }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...