dedmoroz007
@dedmoroz007
Лыжник-программист

Как сделать фильтр на Vue.js по клику?

Имеется live-фильтр с использованием Vue2Filters. Значение из v-model подставляется в функцию filterBy().
Можно ли как-то применять фильтр только при нажатии кнопки "ФИЛЬТР"?
input(type="text",class='filter_tags form-control',v-model="input",autofocus='')
button.searchBtn(type="button") ФИЛЬТР
br
table(:id="getTableClass")#table-tagsdata.table.table-tags.table-bordered
    tr
       th(v-for='tth in tagshead') {{tth}}
    template(v-for='tagObj in filterBy(tagsdata, input)')
  • Вопрос задан
  • 1455 просмотров
Пригласить эксперта
Ответы на вопрос 2
kulakoff
@kulakoff Куратор тега Vue.js
Vue.js developing
Можно добавить еще одну переменную в data компонента и в обработчике кнопки присваивать ей значение из инпута:
button.searchBtn(type="button" @click="some_value=input") ФИЛЬТР

Здесь
template(v-for='tagObj in filterBy(tagsdata, input)'
изменить на
template(v-for='tagObj in filterBy(tagsdata, some_value)'
Ответ написан
dedmoroz007
@dedmoroz007 Автор вопроса
Лыжник-программист
Хорошо, спасибо Evgeny Kulakov! Чтобы получить рабочий фильтр по клику сделал вот что:

в template так и оставил input
template(v-for='tagObj in filterBy(tagsdata, input)')

в поле поиска в директиву v-model поставил свойство объекта data - search_value
input(type="text",class='filter_tags form-control',v-model="search_value",v-on:keyup.enter = "input=search_value", autofocus='')

в data также добавил еще и свойство input и того получилось:
data: function() {
      return {
        search_value: '',
        input: ''
      };
    }

В кнопке "ФИЛЬТР" по клику свойству input, по которому фильтруются значения присваиваю значение search_value из строки поиска:
input.searchBtn(type="button", v-on:click="input=search_value", value="ФИЛЬТР")
Ответ написан
Ваш ответ на вопрос

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

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