@sertu

Как сделать доп фильтр?

Добрый день есть пример https://codepen.io/djastrodeep/pen/oNwOqzE фильтрации только по должности, как еще отфильтровать по гео.Спасибо
  • Вопрос задан
  • 97 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега Vue.js
<option v-for="item in info">
  {{ item.fieldTypes.geo }}
</option>

Это неправильно. Если значения в fieldTypes.geo не уникальны, option'ы тоже будут повторяться. Зачем это? Не надо. Делаем вычисляемое свойство, представляющее уникальные значение, и используем при создании option'ов его:

computed: {
  uniqueGeo() {
    return [...new Set(this.info.map(n => n.fieldTypes.geo))];
  },
  ...

<option v-for="n in uniqueGeo">{{ n }}</option>

В вычисляемом свойстве, которое представляет отфильтрованные данные, добавляем проверку второго значения, переписываем его следующим образом:

computed: {
  filteredOffers() {
    const vacancy = this.searchVacancyName.toUpperCase();
    const geo = this.searchGeo;

    return this.info.filter(n => (
      (!vacancy || n.fieldTypes.vacancyName.toUpperCase().includes(vacancy)) &&
      (!geo || n.fieldTypes.geo === geo)
    ));
  },
  ...
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы