Фильтрация объекта через другой объект с помощью Vue Computed - PullRequest
0 голосов
/ 01 марта 2019

Я пытаюсь создать таблицу, отфильтрованную по флажкам.У меня есть 3 объекта:

  • выбран: какие флажки в настоящее время выбраны
  • сайтов: что заполняет флажки.Структура объекта: sites: [{ siteid, name } ...]
  • items: все элементы таблицы.Структура объекта: items: [{siteid, gradeid, cpl} ..]

Pastebin: https://pastebin.com/J2kBr2Xy CodePen: https://codepen.io/tomdickson/pen/OqXpay

Надеюсь, этого достаточно для получения информации

1 Ответ

0 голосов
/ 01 марта 2019

Попробуйте этот код.Я думаю, что это будет работать.

computed: {
    filteredPositions () {
      return this.items.filter(item => this.selected.includes(item.siteid));
    }
  }

Fiddle - https://jsfiddle.net/8x3yer54/1/

Просто замените вычисленный этим, и он отлично работает.

computed: {
        filteredSite() {
            if (!this.selected.length || this.selected.includes(true)) 
                return this.items

             return this.items.filter(item => this.selected.find((item2) => item2.site==item.site))
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...