angularjs如何避免快速点击按钮,重复提交请求

xiaoxiao2021-02-28  103

转载于:http://www.cnblogs.com/earl-yongchang/p/5609102.html 重写angularjs的ng-click事件  代码为: app.config(['$provide', function ($provide) { $provide.decorator('ngClickDirective',['$delegate','$timeout', function ($delegate,$timeout) { var original = $delegate[0].compile; var delay = 500;//设置间隔时间 $delegate[0].compile = function (element, attrs, transclude) { var disabled = false; function onClick(evt) { if (disabled) { evt.preventDefault(); evt.stopImmediatePropagation(); } else { disabled = true; $timeout(function () { disabled = false; }, delay, false); } } // scope.$on('$destroy', function () { iElement.off('click', onClick); }); element.on('click', onClick); return original(element, attrs, transclude); }; return $delegate; }]); }]);

上面的方法有点极端.感觉不太适用.这里提出一个自己在项目中使用的解决方法,其实很简单.就是用变量来控制

1,设置一个全局变量,点击触发方法时,修改变量的值,然后判断变量是否还是原值,如果不是就不再做点击处理了.但后面方法操作完后,需要还原全局变量的值为初始值.

var ok = 'a'; function(){     if(ok=='b'){         return;     }     ok='b';     ..........业务逻辑     //最后,需要还原     ok='a'; }
转载请注明原文地址: https://www.6miu.com/read-21454.html

最新回复(0)