我有以下角度监视来监视范围变量,并且执行以下操作。我使用debounce将请求捆绑到后端。

  var myWatch = $scope.$watch('myQuery', _.debounce(loadMyData, 1000),true);


当此myQuery返回undefined时,我不需要此反跳操作,而是需要直接执行后端调用。

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


现在,反跳操作无法正确捆绑我的请求。

最佳答案

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

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

关于javascript - Angular 条件 watch 调用去抖动方法是否不起作用,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/26331504/

10-10 21:14