Не удается разрешить все параметры для UserServiceService: (?) - PullRequest
0 голосов
/ 04 октября 2018

Я пытаюсь получить данные пользователей по ссылке, указанной в getsUserUrl. Для этого требуется token (см. Переменную token), которую я добавил в заголовок..Когда я запускаю сервер, я получаю такую ​​ошибку.

Can't resolve all parameters for UserServiceService: (?).at syntaxError (compiler.js:1021)

Вот мой код.Я не знаю, какой параметр мне не хватает в заголовке.

import { Injectable,Pipe } from '@angular/core';
import { HttpHeaders, HttpClient ,HttpErrorResponse,HttpClientModule} 
from "@angular/common/http";
import { catchError } from 'rxjs/operators';
import { throwError } from 'rxjs';
import 'rxjs/add/operator/map';
import { Token } from '@angular/compiler';

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

  usersData: any[] = [];
  user:string

  getUserUrl="https://auth.openshift.io/api/search/users?q=rohit";
   token=`eysdsfdp.whsofd23.fdiu`;
   constructor(private httpclient:HttpClient) {
    }
     private handleError(err: HttpErrorResponse | any) {
    console.error('An error occurred', err);
     return throwError(err.message || err);
    }
 searchUsers()
 {
    const httpOptions = {
     headers: new HttpHeaders({
    'Content-Type':  'application/json',
    'Authorization': `Bearer ${this.token}`
    })
  }; 
     var res=this.httpclient.get(this.getUserUrl,httpOptions);
    return res.pipe(catchError(this.handleError));
}

 }

Пожалуйста, дайте мне знать, что я делаю неправильно. Я прилагаю кодовое фото для вашей справки enter image description here

Так как человек хотел получить мой код компонента, я тоже добавляю его сюда enter image description here

Ответы [ 3 ]

0 голосов
/ 04 октября 2018

Сообщения об ошибках Can't resolve all parameters for UserServiceService: (?) указывают, что угловой DI не может найти зависимость HttpClient, которая, вероятно, вызвана отсутствием импорта HttpClientModule внутри вашего AppModule.

Врешить эту проблему, добавив HttpClientModule из @angular/common/http в раздел imports вашего AppModule.

0 голосов
/ 04 октября 2018

Удалите следующую строку из вашего кода

import 'rxjs/add/operator/map';

и импортируйте HttpClientModule в файл модуля.И объявить в массиве imports.Сделайте следующее

import { HttpClientModule } from '@angular/common/http';

imports: [
   HttpClientModule

И удалите импорт HttpClientModule в файл ваших услуг

0 голосов
/ 04 октября 2018

Вам также необходимо поместить ключевое слово authorization в кавычки

const httpOptions = new HttpHeaders({
'Content-Type':  'application/json',
'Authorization': `Bearer ${this.token}`
});

Или вы также можете определить его так же

let httpOptions = new HttpHeaders();
httpOptions = httpOptions .set('h1', 'v1').set('h2','v2');
...