角度条件表调用去抖方法是不行的

时间:2014-10-13 00:46:37

标签: javascript angularjs underscore.js debouncing

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

现在辩论没有正确捆绑我的请求。

1 个答案:

答案 0 :(得分:1)

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

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