是否调用去抖动方法的角度条件监视不起作用

angular conditional watch to call a debounced method or not is not working

本文关键字:条件 监视 不起作用 调用 抖动 方法 是否      更新时间:2023-09-26

我有以下角度监视来监视作用域变量,并执行以下操作。我使用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并没有正确地捆绑我的请求。

您需要在变量中存储一个新函数,并在watchlistener:中调用它

var debouncedLoadMyData = _.debounce(loadMyData, 1000, true),
    myWatch = $scope.$watch('myQuery', function (oldquery, newquery) {
        if (newquery) {
            debouncedLoadMyData(newquery);
        } else {
            loadMyData(newquery);
        }
    }, true)
;