angular ng-click防止重复提交实例


Posted in Javascript onJune 16, 2017

方法一:点击后,让button的状态变为disable

js指令:

.directive('clickAndDisable', function() {
    return {
      scope: {
        clickAndDisable: '&'
      },
      link: function(scope, iElement, iAttrs) {
        iElement.bind('click', function() {
          iElement.prop('disabled',true);
          scope.clickAndDisable().finally(function() {
            iElement.prop('disabled',false);
          })
        });
      }
    };
  })

html:

<button type="button" class="btn btn-info btn-bordered waves-effect w-md waves-light" click-and-disable="next()">下一步</button>   //把 ng-click 改为指令click-and-disable

方法二:在app.config里面,重写ng-click事件,设置一定事件内不能重复点击

$provide.decorator('ngClickDirective',['$delegate','$timeout', function ($delegate,$timeout) { //记得在config里注入$provide
      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;
    }]);

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
分享一个asp.net pager分页控件
Jan 04 Javascript
JQuery判断子iframe何时加载完成解决方案
Aug 20 Javascript
jquery获取URL中参数解决中文乱码问题的两种方法
Dec 18 Javascript
jQuery Validate 验证,校验规则写在控件中的具体实例
Feb 27 Javascript
跟我学习javascript的作用域与作用域链
Nov 19 Javascript
jQuery设置聚焦并使光标位置在文字最后的实现方法
Aug 02 Javascript
AngularJS实现给动态生成的元素绑定事件的方法
Dec 14 Javascript
bootstrap modal+gridview实现弹出框效果
Aug 15 Javascript
React Native中TabBarIOS的简单使用方法示例
Oct 13 Javascript
javascript高级模块化require.js的具体使用方法
Oct 31 Javascript
vue项目中api接口管理总结
Apr 20 Javascript
《javascript少儿编程》location术语总结
May 27 Javascript
vue.js实现数据动态响应 Vue.set的简单应用
Jun 15 #Javascript
vue实现全选、反选功能
Nov 17 #Javascript
vue中将网页打印成pdf实例代码
Jun 15 #Javascript
Bootstrap Tree View简单而优雅的树结构组件实例解析
Jun 15 #Javascript
Angularjs为ng-click事件传递参数
Jun 15 #Javascript
详解原生js实现offset方法
Jun 15 #Javascript
微信小程序 监听手势滑动切换页面实例详解
Jun 15 #Javascript
You might like
PHP中防止SQL注入方法详解
2014/12/25 PHP
Thinkphp 框架扩展之类库扩展操作详解
2020/04/23 PHP
向大师们学习Javascript(视频与PPT)
2009/12/27 Javascript
jquery一句话全选/取消全选
2011/03/01 Javascript
JavaScript之自定义类型
2012/05/04 Javascript
图片延迟加载的实现代码(模仿懒惰)
2013/03/29 Javascript
javascript面向对象特性代码实例
2014/06/12 Javascript
JavaScript实现随机替换图片的方法
2015/04/16 Javascript
jQuery在线选座位插件seat-charts特效代码分享
2015/08/27 Javascript
浅谈JS继承_借用构造函数 &amp; 组合式继承
2016/08/16 Javascript
JavaScript使用正则表达式获取全部分组内容的方法示例
2017/01/17 Javascript
JavaScript限定范围拖拽及自定义滚动条应用(3)
2017/05/17 Javascript
Vue学习笔记进阶篇之vue-cli安装及介绍
2017/07/18 Javascript
ECMAScript6变量的解构赋值实例详解
2017/09/19 Javascript
JavaScript实现打印星型金字塔功能实例分析
2017/09/27 Javascript
nodejs+express最简易的连接数据库的方法
2020/12/23 NodeJs
[02:02]DOTA2英雄基础教程 斯拉达
2013/12/11 DOTA
基于Django与ajax之间的json传输方法
2018/05/29 Python
PyTorch 1.0 正式版已经发布了
2018/12/13 Python
Python画图高斯分布的示例
2019/07/10 Python
python中selenium操作下拉滚动条的几种方法汇总
2019/07/14 Python
使用Django搭建web服务器的例子(最最正确的方式)
2019/08/29 Python
基于python中__add__函数的用法
2019/11/25 Python
Python3爬虫里关于代理的设置总结
2020/07/30 Python
python 实现的车牌识别项目
2021/01/25 Python
HTML5+CSS3 实现灵动的动画 TAB 切换效果(DEMO)
2017/09/15 HTML / CSS
兰蔻加拿大官方网站:Lancome加拿大
2016/08/05 全球购物
承诺书怎么写
2014/03/26 职场文书
我的老师教学反思
2014/05/01 职场文书
社会发展项目建议书
2014/08/25 职场文书
感恩祖国演讲稿
2014/09/09 职场文书
2014年小学数学教师工作总结
2014/12/03 职场文书
婚宴领导致辞
2015/07/28 职场文书
Redis分布式锁Redlock的实现
2021/08/07 Redis
Spring事务管理下synchronized锁失效问题的解决方法
2022/03/31 Java/Android
vue router 动态路由清除方式
2022/05/25 Vue.js