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