1

我有以下角度手表来观察范围变量,我执行以下操作。我使用 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);

现在去抖动没有正确捆绑我的请求。

4

1 回答 1

1

您需要在变量中存储一个新函数并在监视侦听器中调用它:

var debouncedLoadMyData = _.debounce(loadMyData, 1000, true),
    myWatch = $scope.$watch('myQuery', function (oldquery, newquery) {
        if (newquery) {
            debouncedLoadMyData(newquery);
        } else {
            loadMyData(newquery);
        }
    }, true)
;
于 2014-10-13T01:11:51.333 回答