2016-06-02 3 views
6

Я знаю, что Vue.js имеет встроенные функции для отладки в поле ввода. Я создал слайдер, который запускает метод, который не использует поле ввода, хотя мне было интересно, могу ли я использовать функциональность debounce внутри метода.Vue отказывается от метода?

Возможно ли использовать эту функцию за пределами простого добавления debounce на вход? Или мне нужно написать свои собственные функции для этого?

Я просто пытался сделать что-то подобное, но это не похоже на работу:

this.$options.filters.debounce(this.search(), 2000); 
+2

Не похоже, что в vue.js есть простая функция дезактивации звонков - просто напишите один - это около 5 строк кода, и вы сможете найти множество реализаций в ответах SO или быстром Google. –

ответ

9

Для тех, кто интересуется, о том, как это сделать. Я исправил это, используя удивительный небольшой отрывок я нашел:

атрибутов в моих данных

timer: 0 

Debounce функциональность

// clears the timer on a call so there is always x seconds in between calls 
clearTimeout(this.timer); 

// if the timer resets before it hits 150ms it will not run 
this.timer = setTimeout(function(){ 
    this.search() 
}.bind(this), 150); 
+1

Человек !! Это было так полезно после 2 часов работы с этим хитом $. Любите вас, человек. – juliangonzalez

+0

Я не уверен, откуда это вы взяли, но я прочитал аналогичный фрагмент здесь: https://schier.co/blog/2014/12/08/wait-for-user-to-stop-typing -using-javascript.html Возможно, стоит поблагодарить автора, если это был ваш источник. – bjmc

+0

@bjmc получил его от копейки кого-то еще, это не источник. –

4

Вы подвергнутся this.search) результат выполнения (в дебюте, попробуйте следующее:

var bufferSearch = Vue.options.filters.debounce(this.search.bind(this), 150); 
bufferSearch(); 
Смежные вопросы