Угловые условные часы для вызова дебагового метода или не работает
У меня есть следующие угловые часы для наблюдения за переменной области действия, и я выполняю следующее. Я использую debounce для связывания запроса с бэкэндом.
var myWatch = $scope.$watch('myQuery', _.debounce(loadMyData, 1000),true);
Когда myQuery возвращает undefined, мне не нужен этот debounce, а вместо этого мне нужно выполнить внутренний вызов напрямую.
var myWatch = $scope.$watch('myQuery', function(oldquery,newquery){
if(newquery){
_.debounce(loadMyData(newquery), 2000,true);
}else{
loadMyData(newquery);
}
},true);
теперь debounce неправильно связывает мой запрос.
1 ответ
Решение
Вам нужно сохранить новую функцию в переменной и вызвать ее в слушателе наблюдения:
var debouncedLoadMyData = _.debounce(loadMyData, 1000, true),
myWatch = $scope.$watch('myQuery', function (oldquery, newquery) {
if (newquery) {
debouncedLoadMyData(newquery);
} else {
loadMyData(newquery);
}
}, true)
;