Как исправить ошибку TypeError: req.url.toLowerCase не является функцией - PullRequest
2 голосов
/ 27 апреля 2019

Я настраиваю службу и хочу использовать файл json с фиктивными данными для начала.Однако я получаю TypeError: req.url.toLowerCase не является функцией, когда я использую эту службу с фиктивными данными, как я могу устранить эту ошибку?

Служба:

import mockCompetitions from '../../mocks/competitions-mock.json';

export class CompetitionsService {

  constructor(protected http: HttpClient) { }

  getCompetitions() {
     console.log(mockCompetitions);
     return this.http.get(mockCompetitions);
  }
}

Компонент:

competitions: any = [];

  constructor(private competitionsService: CompetitionsService) {}

  ngOnInit(){
    this.getCompetitions();
  }

  getCompetitions(){
    this.competitionsService.getCompetitions().subscribe(data => {
      this.competitions = data;
      console.log(this.competitions);
    }, err => console.error(err), () => console.log('Finished Loading...'));
  }

Я ожидаю, что список имен будет напечатан на странице из файла json.

Ответы [ 3 ]

1 голос
/ 28 апреля 2019

Если вы хотите использовать httpclient для чтения локального файла json, поместите файл json в папку активов как name-of-the-file.json и сделайте запрос http, используя папку активов в качестве URL-адреса.Важно поместить его в папку активов, чтобы Angular мог его найти.Ваш код должен выглядеть примерно так:

export class CompetitionsService {

  constructor(protected http: HttpClient) { }

  getCompetitions() {
     return this.http.get('./assets/name-of-the-file.json');
  }
}

Так что нет необходимости импортировать файл.

0 голосов
/ 27 апреля 2019

Для использования файла json в качестве поставщика данных вы можете использовать import и require.

import data = require('your_file.json')
console.log("data : ", JSON.stringify(data));
0 голосов
/ 27 апреля 2019

Вы используете файл JSON в качестве URL-адреса вашего http.get(). Если вы хотите протестировать свой сервис с использованием фиктивных данных, я бы порекомендовал какой-нибудь HTTP-макет веб-сайта, например mocky . Поместите туда свой файл JSON и используйте URL-адрес, созданный для вас в вашем http.get(). Вам не нужно ничего менять, кроме как в вашем коде.

...