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

 
转载于: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';
}

 

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值