我有一个包含一个下拉菜单,一个复选框和四个按钮的表单。当执行任何操作(选中/取消选中或下拉选择或单击按钮)时,它必须触发服务呼叫,并且应更新以下部分。可能有一个动作可以立即一个接一个地执行。在这种情况下,应该仅在上一次活动之后才触发http调用。

如果有任何可行的想法,这将很好。我认为超时可以帮助用户完成所有活动(每次活动后等待特定时间)并致电http服务。

最佳答案

我想这就是您需要的:

var timeoutPromise;
var delayInMs = 2000;
$scope.$watch("your_form_scope", function(newValue, oldValue) {
  $timeout.cancel(timeoutPromise);  //does nothing, if timeout alrdy done
  timeoutPromise = $timeout(function(){   //Set timeout
     //your code
  },delayInMs);
});

10-08 16:06