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 相关文章推荐
JS获取IUSR_机器名和IWAM_机器名帐号的密码
Dec 06 Javascript
JavaScript 一行代码,轻松搞定浮动快捷留言-V2升级版
Apr 02 Javascript
JavaScript入门之事件、cookie、定时等
Oct 21 Javascript
给页面渲染时间加速 干掉Dom Level 0 Event
Dec 19 Javascript
javascript 实现子父窗体互相传值的简单实例
Feb 17 Javascript
jsp网页搜索结果中实现选中一行使其高亮
Feb 17 Javascript
JavaScript中的toDateString()方法使用详解
Jun 12 Javascript
jquery+php实现滚动的数字特效
Nov 29 Javascript
微信小程序实现星星评价效果
Nov 02 Javascript
vue cli 3.x 项目部署到 github pages的方法
Apr 17 Javascript
js实现圆形显示鼠标单击位置
Feb 11 Javascript
vue中利用iscroll.js解决pc端滚动问题
Feb 15 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
NO3第三帝国留言簿制作过程
2006/10/09 PHP
PHP详细彻底学习Smarty
2008/03/27 PHP
解析PHP缓存函数的使用说明
2013/05/10 PHP
Memcached常用命令以及使用说明详解
2013/06/27 PHP
浅析PHP微信支付通知的处理方式
2014/05/25 PHP
获取当前网页document.url location.href区别总结
2008/05/10 Javascript
js利用Array.splice实现Array的insert/remove
2009/01/13 Javascript
自己动手开发jQuery插件教程
2011/08/25 Javascript
基于JQuery实现的Select级联
2014/01/27 Javascript
JavaScript中的console.group()函数详细介绍
2014/12/29 Javascript
javascript中hasOwnProperty() 方法使用指南
2015/03/09 Javascript
使用jquery动态加载Js文件和Css文件
2015/10/24 Javascript
详解Javascript中的原型OOP
2016/10/12 Javascript
原生js图片轮播效果实现代码
2016/10/19 Javascript
bootstrap模态框远程示例代码分享
2017/05/22 Javascript
图片懒加载imgLazyLoading.js使用详解
2020/09/15 Javascript
vue+iview+less+echarts实战项目总结
2018/02/22 Javascript
jQuery easyui datagird编辑行删除行功能的实现代码
2018/09/20 jQuery
记录vue做微信自定义分享的一些问题
2019/09/12 Javascript
antd vue 刷新保留当前页面路由,保留选中菜单,保留menu选中操作
2020/08/06 Javascript
用Javascript实现发送短信验证码间隔功能
2021/02/08 Javascript
[36:33]Ti4 循环赛第四日 附加赛NEWBEE vs Mouz
2014/07/13 DOTA
详解Python编程中基本的数学计算使用
2016/02/04 Python
详解常用查找数据结构及算法(Python实现)
2016/12/09 Python
python使用tensorflow深度学习识别验证码
2018/04/03 Python
Django集成搜索引擎Elasticserach的方法示例
2019/06/04 Python
python实现监控阿里云账户余额功能
2019/12/16 Python
opencv中图像叠加/图像融合/按位操作的实现
2020/04/01 Python
python 基于卡方值分箱算法的实现示例
2020/07/17 Python
python爬虫用mongodb的理由
2020/07/28 Python
python使用bs4爬取boss直聘静态页面
2020/10/10 Python
白宫黑市官网:White House Black Market
2016/11/17 全球购物
生产现场工艺工程师岗位职责
2013/11/28 职场文书
2015年保卫科工作总结
2015/05/14 职场文书
Java实战之课程信息管理系统的实现
2022/04/01 Java/Android
MySQL的存储函数与存储过程的区别解析
2022/04/08 MySQL