我有一个包含一个下拉菜单,复选框和四个按钮的表单。执行任何操作时(选中/取消选中或下拉选择或按钮单击),它必须触发服务调用,并且应更新以下部分。可能有可能一个接一个地立即执行多个动作。如果是这种情况,则应仅在最后一次活动后触发http调用。
如果对此有任何可行的想法会很好。我觉得超时有助于等待用户完成所有活动(等待每个活动后的特定时间)并调用http服务。
答案 0 :(得分:0)
我想那就是你所需要的:
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);
});