Вернуться список компаний в зависимости от условия поиска - PullRequest
0 голосов
/ 09 сентября 2018

Я создаю фиктивный API, который включает запрос файла json (содержащего объекты компании) для определенного имени, но он продолжает возвращать ноль вместо совпадений. Как я могу это исправить? Я основал работу на этом учебнике .

код

  filterCompanies(searchTerm) {
    this.http.get('assets/data/companies.json').map(res => res).subscribe(data => {
      this.companies = data;
      return this.companies.filter((company) => {
        return company.name.toLowerCase().indexOf(searchTerm.toLowerCase()) > -1;
      });
    });
  }

companies.json

[
  {
    "name": "one"
  },
  {
    "name": "two"
  },
  {
    "name": "three"
  },
  {
    "name": "four"
  },
  {
    "name": "five"
  }
]

Ответы [ 4 ]

0 голосов
/ 09 сентября 2018

Отфильтрованные компании теперь содержатся в «this.comapnies». Если вы хотите использовать компании в компоненте, который имеет член «companies», нет необходимости возвращать его из функции filterCompanies

0 голосов
/ 09 сентября 2018

Фильтр не изменяет переменную, с которой он работает, поэтому вы должны присвоить его обратно желаемой переменной

filterCompanies(searchTerm) {
    this.http.get('assets/data/companies.json').map(res => res).subscribe(data => {
      this.companies = data.filter((company) => {
        return company.name.toLowerCase().indexOf(searchTerm.toLowerCase()) > -1;
      });
    });
}
0 голосов
/ 09 сентября 2018

Вы можете использовать include, чтобы проверить, содержит ли имя строку поиска

this.companies = [];

this.companies = data.filter((company) => company.name.includes('searchtext'));

или

this.companies = data.filter((company) => company.name.toLowerCase().includes('searchtext'.toLowerCase()));
0 голосов
/ 09 сентября 2018

Без использования возврата вы можете напрямую присвоить значения,

 this.companies = data.filter(t=>t.name.toLowerCase().indexOf(searchTerm.toLowerCase()) > -1;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...